HDFS-完全分布式搭建(从伪分布到完全分布式)

请先搭建[伪分布式]

1、克隆虚拟机

关闭要克隆的虚拟机(否则无法进行克隆操作)
克隆两台机器
选中要克隆的虚拟机->管理->克隆->下一步->下一步->创建完成克隆->下一步->起虚拟机名字->完成

2、修改主机名

$ sudo vi /etc/sysconfig/network
修改hostname

hostname=slave1 -------修改主机名为slave1(另一个虚拟机slave2)

3、修改ip地址

$ sudo vi /etc/udev/rules.d/70-persistent-net.rules
将eth0那行删去,下面的eth1改为eth0

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR修改为70-persistent-net.rules中的原来eth1的MAC地址
IPADDR=192.168.198.105 --------换一个ip(与master不同,即可。slave1:105;slave2:106)

配置结束后重启网络
$ sudo service network restart
如果重启网络无效则重启机器
$ reboot

4、修改ip和主机映射

$ sudo vi /etc/hosts
在文件末添加(中间用空格隔开,三个虚拟机都得改)

192.168.198.104 master
192.168.198.105 slave1
192.168.198.106 slave2

5、验证ssh

首先可以尝试在各虚拟机中ssh登录其他的虚拟机
若无法无密登录,请做以下几步操作(以master无密登录slave1为例):

  1. 将slave1的公钥文件发送给master

$ scp ~/.ssh/id_rsa.pub michael@master:~/.ssh/ id_rsa_slave1.pub

  1. 将slave1的公钥文件内容追加到master的authorized_keys文件

$ cat id_rsa_slave1.pub >> authorized_keys

  1. 结果验证

$ ssh master

6、配置hadoop配置文件

配置core-site.xml

<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
</property>
<property>
		<!--其他临时目录的基础,hadoop系统临时目录(格式化后的namenode和datanode)-->
		<name>hadoop.tmp.dir</name>
		<value>/home/michael/soft/tmp</value>
</property>

配置hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

配置yarn-site.xml

<property>
		<!--nodemanager运行的附加服务列表-->
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>
<property>
		<!--指定resourcemanager所在主机-->
		<name>yarn.resourcemanager.hostname</name>
		<value>master</value>
</property>

配置mapred-site.xml

<property>
		<!--指定mr任务在哪个上面运行(local、经典和yarn)-->
		<name>mapreduce.framework.name</name>
		 <value>yarn</value>
</property>

配置slaves

master
slave1
slave2

表示在上述三个节点启动datanode
接下来我们有两个选择1.在另外两个虚拟机上进行同样的配置。2.scp命令发送给另外两个虚拟机
我选择第二种,直接将整个配置文件所在的文件夹发送给另外两个虚拟机

$ scp -r ~/soft/hadoop/etc/hadoop michael@slave1:~/soft/hadoop/etc/
$ scp -r ~/soft/hadoop/etc/hadoop michael@slave2:~/soft/hadoop/etc/

7、初始化hdfs

  1. 删除各个节点的原hadoop.tmp.dir文件夹下的所有文件
    $ rm ~/soft/tmp/*

  2. 格式化namenode
    最好在master上进行,成功一次就好。若重复操作,请进行操作1后再格式化一次
    $ hdfs namenode -format

  3. 启动集群:
    $ start-all.sh
    或 $ start-dfs.sh 和$ start-yarn.sh

  4. 查看进程
    使用命令Jps 查看三台虚拟主机的hadoop相关进程

[michael@Master hadoop]$ jps --------------------master五个进程
10020 Jps
9608 SecondaryNameNode
9364 ResourceManager
9071 NodeManager
9497 NameNode
9696 DataNode

[michael@slave1 hadoop]$ jps --------------------slave1三个进程
8721 NodeManager
8709 Jps
7661 DataNode

[michael@slave2 hadoop]$ jps --------------------slave2三个进程
5066 NodeManager
5125 DataNode
5334 Jps

  1. Web访问网页
    192.168.198.104:50070
    192.168.198.104:8088
    若都是三个活跃节点,恭喜你,配置成功

若想使用Windows系统的浏览器访问,请关闭虚拟机的防火墙

$ sudo service iptables stop
$ sudo service ip6tables stop
这个命令可以临时关闭防火墙

$ sudo chkconfig iptables off
$ sudo chkconfig ip6tables off
这个命令可以永久关闭防火墙

  1. 关闭集群:
    $ stop-all.sh
    或 $ stop-dfs.sh 和$ stop-yarn.sh

猜你喜欢

转载自blog.csdn.net/yc_hen/article/details/86508515