【玩转大数据】5.hadoop集群环境的搭建

下面通过三台虚拟机完成hadoop分布式环境的搭建

首先我们可以借助之前的虚拟机关机情况下通过虚拟机管理工具克隆出另外两台虚拟机出来,准备机器,等待下面一步步执行

实现目标

宿主机可通过hadoop000,hadoop001,hadoop002来实现对虚拟机的访问及服务的请求


各节点角色分配:
hadoop000:NameNode ResourceManager
hadoop001:DataNode NodeManager
hadoop002:DataNode NodeManager

宿主机的修改

由于虚拟机只是提供服务,而访问服务都是通过宿主机来完成,为了高效的访问虚拟机,我们可以通过对宿主机简单的修改一些参数来完成。

1
2
3
4
5
6
7
8
# 宿主机hosts文件的修改
# 提前进入root权限下
vim /etc/hosts
# 添加下面三行,其中的ip地址的最后三位可以自行根据情况修改,记住就行。
192.168.199.106 hadoop000
192.168.199.107 hadoop001
192.168.199.108 hadoop002
# 保存好就ok

虚拟机的修改操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 1.hosts文件的修改
vim /etc/hosts
# 三台机子都写下面三行
192.168.199.106 hadoop000
192.168.199.107 hadoop001
192.168.199.108 hadoop002

# 2.静态ip地址的修改
# 通过ifconfig命令查看当前网络使用节点名称,以ens33为例
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改其中IPADDR的记录为上面记录的ip
# 重启网络
service network restart

# 3.hostname和ip地址的设置(重启生效)
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop000
# HOSTNAME=hadoop001
# HOSTNAME=hadoop002

# 4.hostname立即生效:每台虚拟机单独执行其中一条
hostname hadoop000
hostname hadoop001
hostname hadoop002

主要配置文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.2.107
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=850bb1c1-6a12-41f7-a08e-d91290bc2c94
DEVICE=ens33
ONBOOT=yes

# vim /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=hadoop001
GETAWAY=192.168.2.1

前置配置

ssh免密登录的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1.安装ssh服务,能连上的可以忽略该步骤
yum install openssh-server

# 2.配置ssh免密码登录
# 每台机器上运行
ssh-keygen -t rsa

# 以hadoop000为主,只在hadoop000上执行下面命令
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop000
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop002
# 每次执行需要输入该主机密码

# 验证安装是否成功:以hadoop000为主看是否可以进入其他主机
ssh hadoop001
exit
ssh hadoop002
exit

jdk环境变量的配置

1
2
3
4
5
6
7
8
9
10
11
# 下载jdk8并上传到三台服务器上
# 环境变量的配置
vim ~/.bash_profile

# 添加如下内容
# jdk环境变量配置
export JAVA_HOME=/root/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

# 刷新配置
source ~/.bash_profile

集群安装

hadoop的安装

1
2
3
4
5
6
7
8
9
10
# 下载hadoop并上传到三台服务器上
# 环境变量的配置
vim ~/.bash_profile

# hadoop环境变量的配置
export HADOOP_HOME=/root/hadoop-2.9.2
export PATH=$HADOOP_HOME/bin:$PATH

# 刷新配置
source ~/.bash_profile

集群安装

基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 相关配置文件的修改
# 文件1:hadoop-env.sh
vim /root/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
# 修改jdk路径
export JAVA_HOME=/root/jdk1.8

# 文件2:core-site.xml
vim /root/hadoop-2.9.2/etc/hadoop/core-site.xml

# 添加下面的配置
# hdfs对外访问的url配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop000:8020</value>
</property>

# 文件3:hdfs-site.xml
vim /root/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
# 添加下面的配置

# 文件系统存放的目录配置
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

# 临时文件日志
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/app/tmp/dfs/name</value>
</property>

# 临时文件数据
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/app/tmp/dfs/data</value>
</property>


# 文件4:yarn-site.xml
vim /root/hadoop-2.9.2/etc/hadoop/yarn-site.xml

# 默认配置
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

# 该resourcemanager跑在哪一个节点上
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop000</value>
</property>

# 文件5:mapred-site.xml (需用通过模板文件来拷贝一份,省略)
vim /root/hadoop-2.9.2/etc/hadoop/mapred-site.xml

# 同伪分布式配置相同
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

主从配置文件

1
2
3
4
5
6
7
# slaves文件配置
vim /root/hadoop-2.9.2/etc/hadoop/slaves
# 先清空文件中的内容("localhosst")
# 将下面的内容放入该文件中
hadoop000
hadoop001
hadoop002

分发安装包到hadoop001和hadoop002节点

1
# 其中包括所有的配置都需要分发

对NN做格式化:只要在hadoop000上执行

1
hdfs namenode -format

启动集群:只要在hadoop000上执行

1
./sbin/start-all.sh

验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#jps
# hadoop000:
NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode
# hadoop001:
NodeManager
DataNode

# hadoop002:
NodeManager
DataNode

# webui:
hadoop000:50070
hadoop000:8088

停止集群:只要在hadoop000上执行

1
./sbin/stop-all.sh

到此环境的基本配置就完成了,后面有需要回来再继续完善。

-------------本文结束感谢您的阅读😜-------------
喜欢较真儿的平头哥 wechat
微信扫一扫,没事常联系 [请注明博客添加]
支持原创,支持开源,感谢打赏,不懈努力。
点击打赏,可领取支付宝红包,不信你试试😏😏😏!
0%