记:
下班后洗个澡,趁着昨天写完伪分布式,今天继续就来一波Hadoop完全分布式的配置。
准备环境
包括昨天的一台master节点,还需另外准备2台节点,我还将master也设置成从节点,不仅有namenode而且还有datanode。所以最后的效果应该是,1台namenode和3台datanode,其中有一台节点datanode和namenode共存。因为穷,我还将secondarynamenode也配置在了master启动。所以节点master中启动了secondarynamenode,和namenode还有datanode。这里我将另外两台命名为node1,和node2。node1和node2都配置好了网络,安装了jdk和hadoop(hadoop的配置可以先是伪分布式的)。安装方式可以参考上一篇文章,也可以简单粗暴进行克隆。
同步3台节点的时间,命令为:
date -s "2019-08-13 22:38:30"
免密登录
这次搭建完全分布式主要是通过master免密登录到其余两台节点,所以将master的~/.ssh中的密钥文件id_rsa.pub分发给他们,命令可以为(以传给node1为例子):
scp id_rsa.pub node1:`pwd`/master.pub
然后进到node1,将master.pub里面的内容直接追加重定向到文件authorized_keys,命令为:
cat master.pub >> authorized_keys
之后就可以用master连接到node1进行验证是否免密登录了,node2的免密登录配置同理。
Hadoop完全分布式安装配置
可以将上一次的hadoop伪分布式配置文件备份一下,以后想玩伪分布式的时候可以用。如图3-1。
然后再进行修改配置:
1)修改文件core-site.xml,改一下存放元数据信息和块信息,文件内容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/junxi/hadoop/full</value>
</property>
</configuration>
2)修改hdfs-site.xml,主要是修改它的副本数量,由原来的1个副本修改成3个副本,文件内容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
3)修改slaves文件,修改从节点,内容如下:
master
node1
node2
完成以上配置之后,就可以将hadoop的整个包分发给node1和node2节点了,以分发给你node1为例,命令如下:
[root@master ~]# cd /opt/
[root@master opt]# ls
xige
[root@master opt]# scp -r xige/ node1:`pwd`
顺便把master的环境变量配置的文件/etc/profile分发给node1和node2,分发完成后记得要source /etc/profile。之后在master节点中,进行格式化,命令为:
hdfs namenode -format
格式化成功截图如3-2。
启动dfs,命令为:
start-dfs.sh
通过jps查看各个节点服务启动情况,根据我一开始的配置设置,master里面应有服务为:SecondaryNameNode,NameNode,DataNode;node1和node2只有DataNode。如图3-3,图3-4。