简介: Hadoop 是一个适合大数据的分布式存储和计算平台。 如前所述,狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态 圈,包括很多其他软件框架 (hdfs、mapreduce、yarn、kafak等)

1. 虚拟机环境准备

1.1 三台虚拟机(静态IP,关闭防火墙,修改主机名,配置免密登录,集群时间同步)

1.2 在/opt目录下创建文件夹

  1. mkdir -p /opt/BigData/software --软件安装包存放目录
  2. mkdir -p /opt/BigData/servers --软件安装目录

1.3.Hadoop下载地址:

https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/
http://hadoop.apache.org/

1.4上传hadoop安装文件到/opt/lagou/software

2.集群规划

框架 node-1 node-2 node-3
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
YARN NodeManager NodeManager NodeManager、ResourceManager

3.安装Hadoop

3.1 集群配置

Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置 HDFS集群配置

    1. 将JDK路径明确配置给HDFS(修改hadoop-env.sh)
    1. 指定NameNode节点以及数据存储目录(修改core-site.xml)
    1. 指定SecondaryNameNode节点(修改hdfs-site.xml)
    1. 指定DataNode从节点(修改etc/hadoop/slaves文件,每个节点配置信息占一行)

MapReduce集群配置

    1. 将JDK路径明确配置给MapReduce(修改mapred-env.sh)
    1. 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)

Yarn集群配置

    1. 将JDK路径明确配置给Yarn(修改yarn-env.sh)
    1. 指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml)
    1. 指定NodeManager节点(会通过slaves文件内容确定)

注意: Hadoop安装目录所属用户和所属用户组信息,默认是501 dialout,而我们操作Hadoop集群的用户使 用的是虚拟机的root用户, 所以为了避免出现信息混乱,修改Hadoop安装目录所属用户和用户组!!

  1. chown -R root:root /opt/BigData/servers/hadoop-2.9.2

3.2 分发配置

编写集群分发脚本rsync-script

  1. #!/bin/bash
  2. #1 获取命令输入参数的个数,如果个数为0,直接退出命令
  3. paramnum=$#
  4. if((paramnum==0)); then
  5. echo no params;
  6. exit;
  7. fi
  8. #2 根据传入参数获取文件名称
  9. p1=$1
  10. file_name=`basename $p1`
  11. echo fname=$file_name
  12. #3 获取输入参数的绝对路径
  13. pdir=`cd -P $(dirname $p1); pwd`
  14. echo pdir=$pdir
  15. #4 获取用户名称
  16. user=`whoami`
  17. #5 循环执行rsync
  18. for((host=1; host<4; host++)); do
  19. echo ------------------- node-$host --------------
  20. rsync -rvl $pdir/$file_name $user@node-$host:$pdir
  21. done

调用脚本分发Hadoop安装目录到其它节点

  1. [root@node-1 bin]# rsync-script /opt/BigData/servers/hadoop-2.9.2

4.启动集群

注意:如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,非第一次不用执行格 式化Namenode操作!!

4.1 格式化namenode

  1. [root@node-1 bin]# hadoop namenode -format

格式化命令执行效果:
image.png
格式化后创建的文件:
image.png

4.2 集群群起

  1. # 启动hdfs
  2. [root@node-1 hadoop]# start-dfs.sh
  3. # 在ResourceManager所在节点启动yarn
  4. [root@node-3 ~]# start-yarn.sh
  5. [root@node-1 hadoop]# jps
  6. 2099 NameNode
  7. 2772 NodeManager
  8. 2229 DataNode
  9. 2890 Jps
  10. [root@node-2 ~]# jps
  11. 2146 Jps
  12. 1912 DataNode
  13. 2040 NodeManager
  14. [root@node-3 ~]# jps
  15. 1845 DataNode
  16. 2346 ResourceManager
  17. 2970 NodeManager
  18. 3086 Jps

4.3. web端查看Hdfs界面

关闭防火墙:systemctl stop firewalld.service
http://node-1:50070/dfshealth.html
image.png

5. 配置历史服务器

  1. vi mapred-site.xml
  2. <property>
  3. <name>mapreduce.jobhistory.address</name>
  4. <value>node-1:10020</value>
  5. </property>
  6. <!-- 历史服务器web端地址 -->
  7. <property>
  8. <name>mapreduce.jobhistory.webapp.address</name>
  9. <value>ndoe-1:19888</value>
  10. </property>

6. 配置日志的聚集

  1. vi yarn-site.xml
  2. <property>
  3. <name>yarn.log-aggregation-enable</name>
  4. <value>true</value>
  5. </property>
  6. <!-- 日志保留时间设置7 -->
  7. <property>
  8. <name>yarn.log-aggregation.retain-seconds</name>
  9. <value>604800</value>
  10. </property>
  11. <property>
  12. <name>yarn.log.server.url</name>
  13. <value>http://ndoe-1:19888/jobhistory/logs</value>
  14. </property>