在CentOS7.5上搭建Hadoop3.0.3完全分布式集群

单节点集群搭建请移步:

在CentOS7.5上搭建Hadoop3.0.3单节点集群

完全分布式集群拓扑图:

多

当前CentOS和JDK版本:

[root@master ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)
[root@master ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

可通过如下命令查看JAVA_HOME

[root@master ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre

所要搭建的Hadoop版本:

[root@master ~]# hadoop version
Hadoop 3.0.3
Source code repository https://yjzhangal@git-wip-us.apache.org/repos/asf/hadoop.git -r 37fd7d752db73d984dc31e0cdfd590d252f5e075
Compiled by yzhang on 2018-05-31T17:12Z
Compiled with protoc 2.5.0
From source with checksum 736cdcefa911261ad56d2d120bf1fa
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.0.3.jar
HostnameHDFSMapReduce/YarnIP
masterNameNodeResourceManager10.0.86.245
ceph1DataNodeNodeManager10.0.86.246
ceph2DataNodeNodeManager10.0.86.221
ceph3DataNodeNodeManager10.0.86.253

1.设置master(任选一个做好的单节点即可)

前提条件:已配好的hostnamehosts和一个已经配好单节点集群的master,若没配好见:在CentOS7.5上搭建Hadoop3.0.3单节点集群
12
①修改core-site.xml文件

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/core-site.xml

21

<property>
  <name>fs.default.name</name>
  <value>hdfs://master:9000</value>
</property>

②修改yarn-site.xml文件

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

222

<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>master:8025</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>master:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>master:8050</value>
</property>

③修改mapred-site.xml文件

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/mapred-site.xml 

6745

<property>
  <name>mapred.job.tracker</name>
  <value>master:54311</value>
</property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>

④修改hdfs-site.xml文件

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml 

4554
这里其实就是在单节点的hdfs-site.xml文件基础上删除了namenode属性。如果此时启动start-dfs.shstart-yarn.sh会少启一个namenode,这是因为namenode仅在master节点上,故等将此虚机复制到其他节点后再会单独配置此文件加上namenode属性。

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

⑤修改workers配置文件
在Hadoop-3.x版本中,需要修改的是workers文件,而在老版本的Hadoop-2.x中(如Hadoop-2.7.7),则修改的是slaves文件

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/workers

把原有的localhost删除,并写入DataNode节点主机名
425

2.将配置好的Hadoop文件分发到其他节点

利用rsyncmaster节点上配置好的hadoop文件夹同步到ceph1ceph2ceph3上相同路径中,这样就不用重新在这些节点上下载Hadoop了。

[root@master ~]# rsync -avP /usr/local/hadoop ceph1:/usr/local/
[root@master ~]# rsync -avP /usr/local/hadoop ceph2:/usr/local/
[root@master ~]# rsync -avP /usr/local/hadoop ceph3:/usr/local/

3.设置master

  • 重新配置hdfs-site.xml文件
[root@master ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

82

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>

4.登录到master、ceph1、ceph2和ceph3并分别重建HDFS目录

①重建masternamenode文件夹

[root@master ~]# rm -rf /usr/local/hadoop/hadoop_data/hdfs
[root@master ~]# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
[root@master ~]# chown -R root:root /usr/local/hadoop

②重建其余节点的datanode文件夹

[root@master ~]# ssh ceph1
[root@ceph1 ~]# rm -rf /usr/local/hadoop/hadoop_data/hdfs
[root@ceph1 ~]# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
[root@ceph1 ~]# chown -R root:root /usr/local/hadoop
[root@master ~]# ssh ceph2
...
[root@master ~]# ssh ceph3
...

③格式化HDFS目录并启动服务
回到master节点下格式化HDFS目录:

[root@master ~]# hadoop namenode -format
[root@master ~]# start-dfs.sh
[root@master ~]# start-yarn.sh 

启动成功后在master下能看到有四个进程。
5324
启动成功后在ceph1~ceph3下能看到有三个进程。
在这里插入图片描述

5.开启Hadoop Web界面

ResourceManager地址 http://localhost:8088/
此处我的地址是:http://10.0.86.245:8088/
NameNode HDFS Web地址 http://localhost:9870/
此处我的地址是:http://10.0.86.245:9870/

打开本机浏览器,分别输入上面两个链接出现如下页面则启动成功。可在8088页面中看到有三个活节点
5436
可以看到HDFS也成功启动了三个活节点。
2462
3442
小结:
datanode(数据节点)主要负责数据的存储。
namenode(命名节点)主要负责三个功能,分别是
(1)管理元数据
(2)维护目录树
(3)响应客户请求

注:

1)如出现下图,节点中没有jps,则需要安装JDK开发插件。
45454
先检查openjdk版本
在这里插入图片描述
安装java-1.8.0-openjdk-devel后即可正常使用jps

[root@master ~]# yum install -y java-1.8.0-openjdk-devel

2)如果启动start-dfs.shstart-yarn.sh报错如下,则是之前设置Hadoop目录权限的时候设置用户名和组名都为root了。

[root@master ~]# start-dfs.sh 
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [master]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-11-26 09:29:54,896 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

1)则需要修改/usr/local/hadoop/sbin/路径下的start-dfs.shstop-dfs.sh配置文件

[root@master ~]# vim /usr/local/hadoop/sbin/start-dfs.sh 
[root@master ~]# vim /usr/local/hadoop/sbin/stop-dfs.sh

在配置文件顶部加入如下四行参数。
55

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

2)还需要修改/usr/local/hadoop/sbin/路径下的start-yarn.shstop-yarn.sh配置文件

[root@master ~]# vim /usr/local/hadoop/sbin/start-yarn.sh 
[root@master ~]# vim /usr/local/hadoop/sbin/stop-yarn.sh

在配置文件顶部加入如下三行参数。

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

现在启动成功~!
6666

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SL_World

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值