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个节点

    http://www.cnblogs.com/makexu/

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号