什么是大数据? 大数据就是很大的数据,那么究竟大到什么程度才算大数据呢?笔者认为大到传统数据库无法一次性处理的数据就称为大数据。 大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察 发现力和流程观察力的海量,高增长率和多样化的信息资产。
大数据的4V特点 Volume(大量),大数据处理的数据是TB,PB,EB级别的 Velocity(高速),处理数据速度快,例如双十一。 Variety(多样),数据被分为结构化和非结构化数据 。结构化数据:数据库/文本为主;非结构化数据越来越多:网络日志,音频,图片,视频,地理位置信息等。 Value(价值),价值密度的高低与数据总量大小成反比。
操作系统:Linux CentOS7 处理器核数:2x4 内存4G,磁盘50G 最小化安装,如下图:
初始化虚拟机 yum install -y epel-releaseepel-release软件包,会自动配置yum的软件仓库。当然你也可以不安装这个包,自己配置软件仓库也是一样的。
yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop gitpsmisc 安装killall命令 nc 能够建立你需要的几乎所有类型的网络连接 net-tools 安装 ifconfig 命令 rsync 主要用于备份和镜像 vim 编辑器 lrzsz 安装sz(下载)和rz(上传)命令 ntp 进行时间同步 libzstd hadoop的一个依赖,负责底层的压缩算法的,可装可不装
关闭防火墙,关闭防火墙自启 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添加如下内容: 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 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop32 hadoop33 hadoop34 do echo ==================== $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:$pdir else echo $file does not exists! fi done 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 ./hdfs-site.xml
vim hdfs-site.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- nn web端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>hadoop32:9870</value> </property> <!-- 2nn web端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop34:9868</value> </property> </configuration>yarn-site.xml
vim yarn-site.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定MR走shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop33</value> </property> <!-- 环境变量的继承 --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <!-- yarn容器允许分配的最大最小内存 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <!-- yarn容器允许管理的物理内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!-- 关闭yarn对物理内存和虚拟内存的限制检查 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>mapred-site.xml
vim mapred-site.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定MapReduce程序运行在Yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </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 在hadoop32上启动hdfs [yuaf@hadoop32 hadoop]$ start-dfs.sh打开浏览器输入网址:
hadoop32:9870能看到此页面说明namenode正常运行
在hadoop33上启动yarn [yuaf@hadoop33 hadoop-3.1.3]$ start-yarn.sh打开浏览器输入网址:
hadoop33:8088出现这个网址说明yarn正常运行。