Hadoop添加删除节点

一、本文说明:

    本文参照网上的一些资料做了对hadoop节点的添加和删除实验。

二、删除节点:

    1.集群配置:

      修改/conf/hdfs-site.xml文件

[jack@node1 conf]$ cat hdfs-site.xml 
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
 <property>
  <name>dfs.name.dir</name>
  <value>/user/hdfs/name</value>
  </property>
  <property>
  <name>dfs.data.dir</name>
  <value>/user/hdfs/data</value>
  </property>
  <property>
  <name>dfs.replication</name>
  <value>2</value>
  </property>
<property>   
    <name>dfs.hosts.exclude</name>   
    <value>/hadoop-0.20.2/conf/hdfs_exclude</value>  
</property> 
</configuration>

    2.确定要下架的机器
      dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。这个将阻止他们去连接Namenode。如:

[jack@node1 conf]$ vi hdfs_exclude
node3

    3.强制重新加载配置

1 [jack@node1 conf]$ /hadoop-0.20.2/bin/hadoop dfsadmin -refreshNodes

      它会在后台进行Block块的移动。

    4.关闭节点
      等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了。

1 [jack@node1 conf]$ /hadoop-0.20.2/bin/hadoop dfsadmin -report

      可以查看到现在集群上连接的节点:

Name: 192.168.1.153:50010
Decommission Status : Decommission in progress
Configured Capacity: 9353789440 (8.71 GB)
DFS Used: 36864 (36 KB)
Non DFS Used: 3458674688 (3.22 GB)
DFS Remaining: 5895077888(5.49 GB)
DFS Used%: 0%
DFS Remaining%: 63.02%
Last contact: Wed May 15 22:59:07 CST 2013


Name: 192.168.1.153:50010
Decommission Status : Decommissioned
Configured Capacity: 9353789440 (8.71 GB)
DFS Used: 28672 (28 KB)
Non DFS Used: 3408281600 (3.17 GB)
DFS Remaining: 5945479168(5.54 GB)
DFS Used%: 0%
DFS Remaining%: 63.56%
Last contact: Thu Jan 01 08:00:00 CST 1970

    5.再次编辑dfs.hosts.exclude文件

      一旦完成了机器下架,它们就可以从dfs.hosts.exclude文件移除。

     登录要下架的机器,会发现Datanode进程没有了,但是TaskTracker依然存在,需要手工处理一下。
     备注:如果想要重新加入集群中,只需把dfs.hosts.exclude文件中的内容删除,再刷新一次,手动去启动加入进来的节点。

三、添加节点:

    大致步骤:

    1)、在新节点安装好hadoop;

    2)、把namenode的有关配置文件复制到该节点;

    3)、修改master和slaves文件,增加该节点;

    4)、设置ssh免密码进出该节点;

    5)、单独启动该节点上的datanode和tasktracker(hadoop-daemon.sh start tasktracker/datanode);

    6)、运行start-balancer.sh进行数据负载均衡。

    具体实验步骤:

    1.修改hosts

      和普通的datanode一样。添加namenode的ip。

    2.修改namenode的配置文件conf/slaves

      添加新增节点的ip或host

    3.在新节点的机器上,启动服务

[jack@node4 conf]$ /hadoop-0.20.2/bin/hadoop-daemon.sh start tasktracker
starting tasktracker, logging to /hadoop-0.20.2/bin/../logs/hadoop-jack-tasktracker-node4.out
[jack@node4 conf]$ jps
3508 Jps
3476 TaskTracker
[jack@node4 conf]$ /hadoop-0.20.2/bin/hadoop-daemon.sh start datanode
starting datanode, logging to /hadoop-0.20.2/bin/../logs/hadoop-jack-datanode-node4.out
[jack@node4 conf]$ jps
3556 DataNode
3476 TaskTracker
3602 Jps

    4.均衡block

[jack@node1 bin]$ ./start-balancer.sh

      1)、如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率。
      2)、设置平衡阀值,默认是10%,值越低各节点越平衡,但消耗时间也更长。

      3)、设置balance的带宽,默认只有1M/s

<property>
   <name>dfs.balance.bandwidthPerSec</name>  
   <value>1048576</value>  
   <description>  
     Specifies the maximum amount of bandwidth that each datanode   
     can utilize for the balancing purpose in term of   
     the number of bytes per second.   
   </description> 
</property>
原文地址:https://www.cnblogs.com/Richardzhu/p/3080947.html