热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据急速入门(一看就会)

大数据的概念什么是大数据?大数据就是很大的数据,那么究竟大到什么程度才算大数据呢?笔者认为大到传统数据库无法一次性处理的数据就称为大数据。大数据(bigdata):指无法在一定

大数据的概念



  • 什么是大数据?
    大数据就是很大的数据,那么究竟大到什么程度才算大数据呢?笔者认为大到传统数据库无法一次性处理的数据就称为大数据。
    大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察 发现力和流程观察力的海量,高增长率和多样化的信息资产。



  • 大数据的4V特点
    Volume(大量),大数据处理的数据是TB,PB,EB级别的
    Velocity(高速),处理数据速度快,例如双十一。
    Variety(多样),数据被分为结构化和非结构化数据 。结构化数据:数据库/文本为主;非结构化数据越来越多:网络日志,音频,图片,视频,地理位置信息等。
    Value(价值),价值密度的高低与数据总量大小成反比。




从Hadoop看大数据



  • 第一代hadoop与第二代hadoop的区别
    第一代hadoop由mapreduce,hdfs,common(辅助工具)组成,其中mapreduce的功能包含分布式计算和资源调度。
    第二代hadoop由mapreduce,yarn,hdfs,common(辅助工具)组成,第二代的hadoop将第一代的mapreduce的功能分离了出来,第二代mapreduce只负责分布式计算,yarn负责资源调度。
    hadoop的组成:mapreduce,hdfs,yarn。

  • mapreduce
    mapreduce分布式计算,如何理解呢?mapreduce将计算分成了两个部分map和reduce。map负责将数据提取出来,reduce负责计算。

  • hdfs
    hdfs分布式存储,由namenode,datanode,secondary namenode组成。
    如何理解呢?namenode,相当于字典记录数据存在哪里;datanode负责存储数据,;secondary namenode 负责辅助namenode。如果想详细了解请关注博主后续动态,急速入门记住这些就够了。

  • yarn
    yarn负责资源调度;由ResourceManager,NodeManager,ApplicationMaster,Contaniner组成。
    ResourceManager主要负责监控NodeManager,启动或监控ApplicationMaster。
    NodeManager主要负责管理单个节点上的资源,处理来自ResourceManager和ApplicationMaster上的命令。
    ApplicationMaster主要负责 数据的切分,为应用程序申请资源并分配给内部的任务。
    Container:是yarn的资源抽象。它封装了某个节点上的多维度资源,如内存,磁盘,cpu,网络等。


运行hadoop前的准备



  • 配置一台最小化安装的虚拟机

操作系统:Linux CentOS7
处理器核数:2x4
内存4G,磁盘50G
最小化安装,如下图:
在这里插入图片描述



  • 初始化虚拟机

yum install -y epel-release

epel-release软件包,会自动配置yum的软件仓库。当然你也可以不安装这个包,自己配置软件仓库也是一样的。

yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

psmisc 安装killall命令
nc 能够建立你需要的几乎所有类型的网络连接
net-tools 安装 ifconfig 命令
rsync 主要用于备份和镜像
vim 编辑器
lrzsz 安装sz(下载)和rz(上传)命令
ntp 进行时间同步
libzstd hadoop的一个依赖,负责底层的压缩算法的,可装可不装
openssl-static
tree
iotop
git

关闭防火墙,关闭防火墙自启
systemctl stop firewalld
systemctl disable firewalld

创建用户并修改密码
useradd yuaf
passwd yuaf

配置yuaf用户使其拥有root权限
vim /etc/sudoers

修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行,如下所示:
在这里插入图片描述
在/opt文件下创建文件夹,并修改文件所属主和所属组。

mkdir /opt/module
mkdir /opt/software
chown yuaf:yuaf /opt/module
chown yuaf:yuaf /opt/software

在这里插入图片描述

配置静态ip参考这个就不做举例了。
https://blog.csdn.net/Kruskual/article/details/108286566

Hadoop运行环境的搭建



  • 克隆虚拟机
    克隆三台虚拟机,怎么克隆就不用说了吧。

  • 修改主机名
    分别修改为hadoop32,hadoop33,hadoop34

  • 修改静态ip地址
    分别修改为32,33,34

  • 修改虚拟机,windows主机映射

sudo vim /etc/hosts

添加如下内容:
在这里插入图片描述
windows在C:\Windows\System32\drivers\etc
将hosts文件拷贝到桌面改写添加数据如下图,然后再覆盖原hosts文件
在这里插入图片描述



  • 导入jdk,hadoop的jar包
    推荐用远程登陆工具fnalshell,把jar包拖到对应目录就好了。
    在这里插入图片描述



  • 解压两个jar包到 /opt/module



tar -xf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -xf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/

在这里插入图片描述



  • 配置环境变量

sudo vim /etc/profile.d/my_env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述

检验环境变量是否生效
source /etc/profile
hadoop version

在这里插入图片描述



  • 编写群发脚本,群发解压后的java和hadoop及其环境变量

cd /home/yuaf
mkdir bin
cd bin
vim xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop32 hadoop33 hadoop34
doecho ==================== $host ====================#3. 遍历所有目录,挨个发送for file in $@do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

给脚本可执行权限
chmod +x xsync
将脚本xsync拷贝到/bin目录下
sudo cp xsync /bin/
将/home/yuaf/bin分发到其他两台虚拟机
xsync /home/yuaf/bin
将/bin/xsync分发到其他两台虚拟机
sudo xsync /bin/xsync

将配置文件发到其他 两台虚拟机上
sudo xsync /etc/profile.d
将hadoop和jdk发到其他两台虚拟机上
xsync /opt/module


  • 设置普通用户及root用户免密登录

yuaf用户的免密登录
cd /home/yuaf/.ssh
进入.ssh目录
ssh-keygen -t rsa
生成公钥和私钥
ssh-copy-id hadoop32
将公钥发给自己
sudo xsync ./
将公钥拷贝到要免密登录的机器上

root用户的免密登录
su
使用root用户
cd /root/.ssh
ssh-keygen -t rsa
ssh-copy-id hadoop32
sudo xsync ./

完全分布式运行Hadoop



  • 配置Hadoop文件
    core-site.xml

cd $HADOOP_HOME/etc/hadoop
vim core-site.xml


<configuration><property><name>fs.defaultFSname><value>hdfs://hadoop32:9820value>
property>
<property><name>hadoop.tmp.dirname><value>/opt/module/hadoop-3.1.3/datavalue>
property><property><name>hadoop.http.staticuser.username><value>yuafvalue>
property><property><name>hadoop.proxyuser.yuaf.hostsname><value>*value>
property>
<property><name>hadoop.proxyuser.yuaf.groupsname><value>*value>
property>
<property><name>hadoop.proxyuser.yuaf.groupsname><value>*value>
property>configuration>

hdfs-site.xml

vim hdfs-site.xml


<configuration><property><name>dfs.namenode.http-addressname><value>hadoop32:9870value>property><property><name>dfs.namenode.secondary.http-addressname><value>hadoop34:9868value>property>
configuration>

yarn-site.xml

vim yarn-site.xml


<configuration><property><name>yarn.nodemanager.aux-servicesname><value>mapreduce_shufflevalue>
property>
<property><name>yarn.resourcemanager.hostnamename><value>hadoop33value>
property>
<property><name>yarn.nodemanager.env-whitelistname><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOMEvalue>
property>
<property><name>yarn.scheduler.minimum-allocation-mbname><value>512value>property><property><name>yarn.scheduler.maximum-allocation-mbname><value>4096value>
property>
<property><name>yarn.nodemanager.resource.memory-mbname><value>4096value>
property>
<property><name>yarn.nodemanager.pmem-check-enabledname><value>falsevalue>property><property><name>yarn.nodemanager.vmem-check-enabledname><value>falsevalue>property>
configuration>

mapred-site.xml

vim mapred-site.xml


<configuration><property><name>mapreduce.framework.namename><value>yarnvalue>property>
configuration>

workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

hadoop32
hadoop33
hadoop34

在这里插入图片描述



  • 将配置文件分发给其他服务器

xsync /opt/module/hadoop-3.1.3/etc/


  • 第一次运行时格式化

hdfs namenode -format


  • 启动hdfs

[yuaf@hadoop32 hadoop]$ start-dfs.sh


  • 启动yarn

[yuaf@hadoop33 hadoop-3.1.3]$ start-yarn.sh

推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有