CentOS7下Hadoop2.9.2完全分布式安装

一、服务器规划

Host NameIP AddressNode Type
hadoop1192.168.100.161DataNode / NodeManager / NameNode
hadoop2192.168.100.162DataNode / NodeManager / SecondaryNameNode
hadoop3192.168.100.163DataNode / NodeManager / ResourceManager

首先 NameNode 和  ResourceManager 不要在同一台机器上, SecondaryNameNode也不要和 NameNode在同一台机器上。 NameNode所在服务器为Master, 其他机器为Slave, 作为 DataNode 和 NodeManager.

二、准备3台服务器

ip 分别为 192.168.100.161, 192.168.100.162, 192.168.100.163, hostname 分别为hadoop1, hadoop2, hadoop3。(可以从伪分布式安装的机器复制出3台)

vi /etc/hosts    分别编辑3台机器的该文件,加入如下内容:
192.168.100.161 hadoop1
192.168.100.162 hadoop2
192.168.100.163 hadoop3

修改hostname
hostnamectl set-hostname hadoop1   或者 vi /etc/hostname  内容为hadoop1
hostnamectl set-hostname hadoop2
hostnamectl set-hostname hadoop3
hostname 查看

关闭防火墙和SELinux,并确保相互之间能ping通,相互之间免密登录,时间同步

2.1 关闭防火墙和SELinux

systemctl stop firewalld.service
systemctl disable firewalld.service

setenforce 0
vi /etc/selinux/config    将“SELINUX=enforcing”值改为“disabled”

2.2 免密登录

需要三台机器之间都能免密登录。分别在3台机器上执行下面的命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

2.3 时间同步

如果各主机之间的时间差异较大,执行MapReduce程序的时候可能会出问题。可安装NTP服务来校验时间
# vi /etc/sysconfig/clock  内容如下
ZONE="Asia/Shanghai"
UTC=false
ARC=false

# yum -y install ntp
# /usr/sbin/ntpdate asia.pool.ntp.org
# /sbin/hwclock --systohc

# vi /data/soft/timesyc.sh
/usr/sbin/ntpdate asia.pool.ntp.org
/sbin/hwclock --systohc

# vi /etc/rc.local  加入下面一行,实现系统启动时自动执行
/bin/sh /home/timesyc.sh

三、配置Hadoop

# tar zxvf hadoop-2.9.2.tar.gz
# ln -s hadoop-2.9.2 hadoop

后续的配置操作都在hadoop目录下。

3.1 配置

hadoop有2类配置文件:
1,只读的默认配置 core-default.xml, hdfs-default.xml, yarn-default.xml 和 mapred-default.xml
2,Site相关的配置 etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml 和 etc/hadoop/mapred-site.xml
另外还有配置环境变量的脚本: etc/hadoop/hadoop-env.sh, etc/hadoop/mapred-env.sh 和 etc/hadoop/yarn-env.sh
这些配置文件的内容需要在所有的服务器上都一致。

HDFS 的守护进程是 NameNode, SecondaryNameNode 和 DataNode。 YARN 的守护进程是 ResourceManager, NodeManager 和 WebAppProxy.
# mkdir -p /data/hadoop/tmp

etc/hadoop/core-site.xml :
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml :
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop2:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

设置Slaves
# vi etc/hadoop/slaves
hadoop1
hadoop2
hadoop3

# cp mapred-site.xml.template mapred-site.xml
etc/hadoop/mapred-site.xml :
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml :
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop3</value>
    </property>
</configuration>

3.2 格式化

在NameNode即hadoop1执行
# mkdir -p /data/hadoop/tmp
# hdfs namenode -format
对hadoop.tmp.dir(如果没有配置则默认为/tmp)做格式化,格式化只做一次即可,再次格式化会丢失datanode的数据

四、 启动

在hadoop1执行  start-dfs.sh
然后,分别在3台服务器上查看jps
[root@hadoop1 data]# jps
18705 NameNode
19115 Jps
18797 DataNode
[root@hadoop2 hadoop]# jps
10992 DataNode
11254 Jps
11065 SecondaryNameNode
[root@hadoop3 hadoop]# jps
15214 Jps
15023 DataNode

在hadoop3( ResourceManager所在服务器)执行  start-yarn.sh
然后,分别在3台服务器上查看jps
[root@hadoop1 data]# jps
18705 NameNode
19362 Jps
19286 NodeManager
18797 DataNode
[root@hadoop2 hadoop]# jps
10992 DataNode
11457 Jps
11065 SecondaryNameNode
11386 NodeManager
[root@hadoop3 hadoop]# jps
15357 ResourceManager
15453 NodeManager
15645 Jps
15023 DataNode
与前面对服务器的规划完全一致。

http://192.168.100.161:50070 HDFS管理界面(即namenode和datanode)
http://192.168.100.162:50090/   SecondaryNameNode管理界面
http://192.168.100.163:8088     yarn管理界面

四、测试MapReduce

与伪分布式完全一致。

准备测试数据
# mkdir -p /data/input
# vi /data/input/data.txt  内容如下
hello world
hello hadoop
# hdfs dfs -mkdir /input
# hdfs dfs -put /data/input/data.txt /input
# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /input/data.txt /data/output
# hdfs dfs -cat /data/output/part-r-00000
hadoop  1
hello   2
world   1

本文内容到此结束,更多内容可关注公众号

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值