当前位置:   article > 正文

Hadoop完全分布式集群搭建(超详细)_hadoop完全分布式集群搭建全过程

hadoop完全分布式集群搭建全过程

目录

1.1.1 完全分布式介绍

1.1.2 平台软件说明

1.1.3 守护进程布局

1.2.1 集群搭建准备

1.2.2 总纲

1.2.3防火墙关闭

1.2.4 主机映射

1.2.5 免密登陆

1.2.6 jdk安装和hadoop安装及环境配置

1.3.1 配置文件

1.core-site.xml

2.hdfs-site.xml

3.hadoop-enc.sh

4.workres

5. 分发

1.3.2 格式化集群

1.3.2 启动集群

1.3.3 进程查看

1.4.1 YARN配置

1.mapred-site.xml

2.yarn-site.xml

3.hadoop-env.sh

1.4.2 分发到其他节点


java安装包和hadoop安装包还是用上次的jdk-8u191-linux-x64.tar.gz和hadoop-3.1.1.tar.gz

1.1.1 完全分布式介绍

    在真实的企业环境中,服务器集群会使⽤到多台机器,共同配合,来构建⼀个完整的分布式⽂件系统。⽽在这样的分布式⽂件系统中,HDFS相关的守护进程也会分布在不同的机器上,例如:

  • NameNode守护进程,尽可能的单独部署在⼀台硬件性能较好的机器中。
  • 其他的每台机器上都会部署⼀个DataNode守护进程,⼀般的硬件环境即可。
  • SecondaryNameNode守护进程最好不要和NameNode在同⼀台机器上。

1.1.2 平台软件说明

平台&&软件说明
宿主操作系统Windows
虚拟机操作系统Centos7
虚拟机软件
VMWare
虚拟机
主机名: shulin1, IP地址: 192.168.10.101
主机名: shulin2, IP地址: 192.168.10.102
主机名: shulin3, IP地址: 192.168.10.103
SSH工具xshll/xftp
软件包上传路径
/usr/local
软件安装路径
/usr/local
JDK
X64: jdk-8u191-linux-x64.tar.gz
Hadoop
X64: hadoop-3.1.1.tar.gz
⽤户
root

1.1.3 守护进程布局

NamenodeDatenode
SecondaryNameNode
shulin1        √     √
shulin2     √                  √

shulin3

     √ 

1.2.1 集群搭建准备

1.2.2 总纲

  1. 三台机器的防⽕墙必须是关闭的.
  2. 确保三台机器的⽹络配置畅通(NAT模式,静态IP,主机名的配置)
  3. 确保/etc/hosts⽂件配置了ip和hostname的映射关系
  4. 确保配置了三台机器的免密登陆认证(克隆会更加⽅便)
  5. 确保所有机器时间同步
  6. jdk和hadoop的环境变量配置

1.2.3防火墙关闭

  1. 三台虚拟机都要关闭
  2. [root@shulin ~]# systemctl stop firewalld   #正常情况执行前两步即可,不懂的可以百度一下
  3. [root@shulin ~]# systemctl disable firewalld
  4. [root@shulin ~]# systemctl stop NetworkManager
  5. [root@shulin ~]# systemctl disable NetworkManager
  6. #最好也把selinux关闭掉,这是linux系统的⼀个安全机制,进⼊⽂件中将SELINUX设置为disabled
  7. [root@shulin ~]# vi /etc/selinux/config
  8. .........
  9. SELINUX=disabled 
  10. .........

1.2.4 主机映射

  1. 三台虚拟机均要配置
  2. [root@shulin1 ~]# vi /etc/hosts
  3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  5. 192.168.10.101 shulin1 #添加本机的静态IP和本机的主机名之间的映射关系
  6. 192.168.10.102 shulin2
  7. 192.168.10.103 shulin3

1.2.5 免密登陆

  1. 三台虚拟机均要配置
  2. # 1. 使⽤rsa加密技术,⽣成公钥和私钥。⼀路回⻋即可
  3. [root@shulin1 ~]# ssh-keygen -t rsa
  4. # 2. 使⽤ssh-copy-id命令
  5. [root@shulin1 /]#cd ~/.ssh
  6. [root@shulin1 .ssh]# ssh-copy-id root@shulin1
  7. [root@shulin1 .ssh]# ssh-copy-id root@shulin2
  8. [root@shulin1 .ssh]# ssh-copy-id root@shulin3
  9. # 3. 进⾏验证
  10. [hadoop@shulin1 .ssh]# ssh shulin1
  11. [hadoop@shulin1 .ssh]# ssh shulin2
  12. [hadoop@shulin1 .ssh]# ssh shulin3
  13. # 4. 继续在shulin2和shulin3⽣成公钥和私钥,给三台节点拷⻉。

1.2.6 jdk安装和hadoop安装及环境配置

这一步只配置第一台即可,另外两台直接传过去即可。

请参考hadoop安装之保姆级教程 1.1.1节至1.2.1节的java和hadoop安装及其环境配置。

1.3.1 配置文件

配置文件地址在 usr/local/hadoop-3.1.1/etc/hadoop 下

1.core-site.xml

  1. <configuration>
  2. <!-- 设置namenode节点 -->
  3. <!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时代默认端
  4. 9820 -->
  5. <property>
  6. <name>fs.defaultFS</name>
  7. <value>hdfs://shulin1:9820</value>
  8. </property>
  9. <!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>/usr/local/hadoop-3.1.1/tmp</value>
  13. </property>
  14. </configuration>

2.hdfs-site.xml

  1. <configuration>
  2. <!-- 块的副本数量 -->
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>3</value>
  6. </property>
  7. <!-- secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
  8. <property>
  9. <name>dfs.namenode.secondary.http-address</name>
  10. <value>shulin2:9868</value>
  11. </property>
  12. <!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
  13. <property>
  14. <name>dfs.namenode.http-address</name>
  15. <value>shulin1:9870</value>
  16. </property>
  17. </configuration>

3.hadoop-env.sh

  1. export JAVA_HOME=/usr/local/jdk1.8.0_191
  2. # Hadoop3中,需要添加如下配置,设置启动集群⻆⾊的⽤户是谁
  3. export HDFS_NAMENODE_USER=root
  4. export HDFS_DATANODE_USER=root
  5. export HDFS_SECONDARYNAMENODE_USER=root

4.workers

  1. 将原来的localhost删掉,改为
  2. shulin1
  3. shulin2
  4. shulin3

5. 分发

  1. # 我们已经完成了⼀个节点的环境配置,其他的节点也需要保持完全相同的配置。我们只需要将shulin1
  2. 节点的配置拷⻉到其他的节点即可。
  3. # 分发之前,先检查⾃⼰的节点数据⽂件是否存在
  4. # 如果之间格式化过集群,那么会在core-site.xml中配置的hadoop.tmp.dir路径下⽣成⽂件,先将其删
  5. [root@shulin1 ~]# cd /usr/local
  6. [root@shulin1 local]# scp -r jdk1.8.0_321/ shulin2:$PWD
  7. [root@shulin1 local]# scp -r jdk1.8.0_321/ shulin3:$PWD
  8. [root@shulin1 local]# scp -r hadoop-3.3.1/ shulin2:$PWD
  9. [root@shulin1 local]# scp -r hadoop-3.3.1/ shulin3:$PWD
  10. [root@shulin1 local]# scp etc/profile shulin2:/etc/
  11. [root@shulin1 local]# scp etc/profile shulin2:/etc/

1.3.2 格式化集群

  1. 我们只在1号机格式就可以
  2. [root@shulin1 ~]# hdfs namenode -format

1.3.2 启动集群

  1. start-dfs.sh # 启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
  2. stop-dfs.sh # 停⽌HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
  3. # hdfs --daemon start 单独启动⼀个进程
  4. hdfs --daemon start namenode # 只开启NameNode
  5. hdfs --daemon start secondarynamenode # 只开启SecondaryNameNode
  6. hdfs --daemon start datanode # 只开启DataNode
  7. # hdfs --daemon stop 单独停⽌⼀个进程
  8. hdfs --daemon stop namenode # 只停⽌NameNode
  9. hdfs --daemon stop secondarynamenode # 只停⽌SecondaryNameNode
  10. hdfs --daemon stop datanode # 只停⽌DataNode
  11. # hdfs --workers --daemon start 启动所有的指定进程
  12. hdfs --workers --daemon start datanode # 开启所有节点上的DataNode
  13. # hdfs --workers --daemon stop 启动所有的指定进程
  14. hdfs --workers --daemon stop datanode # 停⽌所有节点上的DataNode

1.3.3 进程查看

  1. # shulin1节点
  2. [root@shulin1 hadoop]# jps
  3. 13442 NameNode
  4. 13618 DataNode
  5. 13868 Jps
  6. # shulin2节点
  7. [root@shulin2 ~]# jps
  8. 10514 SecondaryNameNode
  9. 10548 Jps
  10. 10405 DataNode
  11. # shulin3节点
  12. [root@shulin3 ~]# jps
  13. 10931 DataNode
  14. 11001 Jps

1.4.1 YARN配置

1.mapred-site.xml

  1. <configuration>
  2. <!-- 指定MapReduce作业执⾏时,使⽤YARN进⾏资源调度 -->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. <property>
  8. <name>yarn.app.mapreduce.am.env</name>
  9. <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
  10. </property>
  11. <property>
  12. <name>mapreduce.map.env</name>
  13. <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
  14. </property>
  15. <property>
  16. <name>mapreduce.reduce.env</name>
  17. <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
  18. </property>
  19. </configuration>

2.yarn-site.xml

  1. <configuration>
  2. <!-- 设置ResourceManager -->
  3. <property>
  4. <name>yarn.resourcemanager.hostname</name>
  5. <value>shulin1</value>
  6. </property>
  7. <!--配置yarn的shuffle服务-->
  8. <property>
  9. <name>yarn.nodemanager.aux-services</name>
  10. <value>mapreduce_shuffle</value>
  11. </property>
  12. </configuration>

3.hadoop-env.sh

  1. # 在最后面添加如下:
  2. export YARN_RESOURCEMANAGER_USER=root
  3. export YARN_NODEMANAGER_USER=root

1.4.2 分发到其他节点

  1. [root@shulin ~]# cd $HADOOP_HOME/etc/
  2. [root@shulin etc]# scp -r hadoop shulin02:$PWD
  3. [root@shulin etc]# scp -r hadoop shulin03:$PWD

1.5.1 配置完成

至此hadoop完全分布式集群以搭建完成,可以打开火狐浏览器输入对应ip地址和端口号即可查看hadoop页面和yarn页面

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号