7.Hadoop动态添加节点

0.系统版本信息

OS:Debian-8.2
JDK:1.8.0_181
Hadoop-2.8.4
Zookeeper-3.4.10
Hbase:1.3.1
Spark:2.3.1  
主机信息
192.168.74.131  master
192.168.74.133  slave1
192.168.74.134  slave2
192.168.74.135  slave3

1.动态添加新的节点slave4到集群中

A:直接克隆slave3虚拟机,并命名为slave4
# 在slave4机器上修改hostname,修改hosts文件,, 修改完成后重启节点slave4
$ vim /etc/hostname 
slave4
$ vim /etc/hosts
192.168.74.131 master
192.168.74.133 slave1
192.168.74.134 slave2
192.168.74.135 slave3
192.168.74.136 slave4
# 将hosts文件也更新到master,slave1,slave2,slave3各个节点上
# 在maste节点上修改slaves文件,只需在master上修改即可
$ vim /home/hadoop/opt/hadoop-2.8.4/etc/hadoop/slaves(主要是下次重启时使用)
slave1                                                                                                                                                                                                                                   
slave2
slave3
slave4
B:修改节点slave4上的hdfs数据存放信息
$ cat /home/hadoop/opt/hadoop-2.8.4/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/data1/dfs/name</value>
        <description>命名空间和事务在本地文件系统永久存储的路径</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/data1/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
        <description>分片数量,伪分布式将其配置成1即可</description>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

# 上面的配置文件是公共的,由于我们的slave4是从slave3克隆来的,每个处于service的节点都会有一个VERSION信息,
比如下面是节点slave3的VERSION信息,如果直接使用slave4,那么新节点slave4与被复制节点的slave3的storageID一样
(位置:/home/hadoop/data1/dfs/data/current/VERSION文件)
这样会导致被复制节点和新节点的冲突,被复制节点和新节点在web查看时,或者被复制节点出现,或者新节点出现(但均为“死节点”)

$ cat VERSION 
#Sun Aug 19 22:40:03 EDT 2018
storageID=DS-cf6da33a-fae1-48c6-9050-1b1ec2adab3c
clusterID=CID-358cf1a7-1b90-46c6-aac4-96b0d4ffdf42
cTime=0
datanodeUuid=4a19fc1a-b388-4334-b35a-d04e7b89c52e
storageType=DATA_NODE
layoutVersion=-57


!!!解决方式就是克隆新的节点slave4后,删除/home/hadoop/data1/dfs/data目录下的所有文件,
其实就是一个全新的节点
C:新节点加入集群

    上面的准备工作做好之后,就可以在新节点slave4上执行相关的服务启动指令将新节点动态加入集群中去

#  以下指令都是在slave4上执行的
#  启动 datanode
./sbin/hadoop-daemon.sh start datanode

#  启动 nodemanager
./sbin/yarn-daemon.sh start nodemanager

$  jps
900 DataNode
1015 NodeManager
1303 Jps

$ ./sbin/start-balancer.sh
D:查看集群信息
# master上执行
$ hadoop dfsadmin -refreshNodes
$ hdfs dfsadmin -report

    http://192.168.74.131:50070/dfshealth.html#tab-datanode发现已经有了4个节点

posted @ 2018-08-20 11:17  桃源仙居  阅读(107)  评论(0)    收藏  举报