0


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

目录


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 守护进程布局

Namenode****Datenode
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防火墙关闭

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

1.2.4 主机映射

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

1.2.5 免密登陆

三台虚拟机均要配置
# 1. 使⽤rsa加密技术,⽣成公钥和私钥。⼀路回⻋即可
[root@shulin1 ~]# ssh-keygen -t rsa 
# 2. 使⽤ssh-copy-id命令
[root@shulin1 /]#cd ~/.ssh 
[root@shulin1 .ssh]# ssh-copy-id root@shulin1
[root@shulin1 .ssh]# ssh-copy-id root@shulin2
[root@shulin1 .ssh]# ssh-copy-id root@shulin3
# 3. 进⾏验证 
[hadoop@shulin1 .ssh]# ssh shulin1
[hadoop@shulin1 .ssh]# ssh shulin2
[hadoop@shulin1 .ssh]# ssh shulin3
# 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

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

2.hdfs-site.xml

<configuration>
<!-- 块的副本数量 -->
    <property>
        <name>dfs.replication</name>
    <value>3</value>
    </property>
<!-- secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>shulin2:9868</value>
    </property>
<!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>shulin1:9870</value>
    </property>
</configuration>

3.hadoop-env.sh

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

4.workers

将原来的localhost删掉,改为
shulin1
shulin2
shulin3

5. 分发

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

1.3.2 格式化集群

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

1.3.2 启动集群

start-dfs.sh # 启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
stop-dfs.sh # 停⽌HDFS所有进程(NameNode、SecondaryNameNode、DataNode)

# hdfs --daemon start 单独启动⼀个进程
hdfs --daemon start namenode # 只开启NameNode
hdfs --daemon start secondarynamenode # 只开启SecondaryNameNode
hdfs --daemon start datanode # 只开启DataNode
# hdfs --daemon stop 单独停⽌⼀个进程
hdfs --daemon stop namenode # 只停⽌NameNode
hdfs --daemon stop secondarynamenode # 只停⽌SecondaryNameNode
hdfs --daemon stop datanode # 只停⽌DataNode
# hdfs --workers --daemon start 启动所有的指定进程
hdfs --workers --daemon start datanode # 开启所有节点上的DataNode
# hdfs --workers --daemon stop 启动所有的指定进程
hdfs --workers --daemon stop datanode # 停⽌所有节点上的DataNode

1.3.3 进程查看

# shulin1节点
[root@shulin1 hadoop]# jps
13442 NameNode
13618 DataNode
13868 Jps
# shulin2节点
[root@shulin2 ~]# jps
10514 SecondaryNameNode
10548 Jps
10405 DataNode
# shulin3节点
[root@shulin3 ~]# jps
10931 DataNode
11001 Jps

1.4.1 YARN配置

1.mapred-site.xml

<configuration>
<!-- 指定MapReduce作业执⾏时,使⽤YARN进⾏资源调度 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>  
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.1</value>
    </property>
</configuration>

2.yarn-site.xml

<configuration>
<!-- 设置ResourceManager -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>shulin1</value>               
    </property>
<!--配置yarn的shuffle服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

3.hadoop-env.sh

# 在最后面添加如下:
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

1.4.2 分发到其他节点

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

1.5.1 配置完成

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

标签: hadoop 分布式 hdfs

本文转载自: https://blog.csdn.net/qq_52868045/article/details/127981884
版权归原作者 linzz0000 所有, 如有侵权,请联系我们删除。

“Hadoop完全分布式集群搭建(超详细)”的评论:

还没有评论