动态扩容
1.1 基础配置
按《大数据安装指导》对扩容节点服务器进行配置,与现有节点相同。
保证新节点与旧节点间可以免密ssh登录。
1.2 扩容
1.2.1 修改配置
HADOOP_HOME/etc/hadoop/core-site.xml
<name>ha.zookeeper.quorum</name> # Zookeeper添加新节点
$HADOOP_HOME/etc/hadoop/slaves:添加新datanode节点的域名/IP/hostname
$ZOOKEEPER_HOME/conf/zoo.cfg:添加新datanode节点为zookeeper server,并赋予新编号
$ZOOKEEPER_dataDir/myid: 在2.1.3 zoo.cfg文件中的dataDir目录下的myid文件,添加新datanode节点的编号,与zoo.cfg一致
1.2.2 启动
启动新节点DataNode
在新节点的{HADOOP_HOME}/sbin目录下启动DataNode
/opt/hadoop-2.7.3/sbin/hadoop-daemon.sh start datanode
启动新节点NodeManger
在新节点的{HADOOP_HOME}/sbin目录下启动DataNode
/opt/hadoop-2.7.3/sbin/yarn-daemon.sh start nodemanager
启新节点Zookeeper
/opt/zookeeper-3.4.9/bin/zkServer.sh start
1.2.3 查看结果
在新节点执行jps查看
在集群Web前端查看datanode情况
1.2.4 集群平衡
在新节点的{HADOOP_HOME}/sbin目录下开启集群平衡(阈值设置为5%)
/opt/hadoop-2.7.3/sbin/start-balancer.sh -threshold 5
在集群{HADOOP_HOME}/bin目录下设置平衡带宽为200Mb
/opt/hadoop-2.7.3/bin/hdfs dfsadmin -setBalancerBandwidth 209715200
2 动态下线节点
2.1 过程
下线的时候Datanode会有以下操作:
1.计算块信息
2.删除块
3.copy块
4.校验块信息
2.2 步骤
1.在Namenode上,把需要Decommission的Datanode的机器名加入到dfs.hosts.exclude(该配置项在hdfs-site.xml)所指定文件中,也就是告诉Namenode哪些Datanode要被Decommission
如果hdfs-site.xml没有找到dfs.hosts.exclude,那么就手动把下面内容加入到hdfs-site.xml中,然后把需要Decommission的机器写到文件/path/to/file中去。
<property>
<name>dfs.hosts.exclude</name>
<value>/path/to/file </value>
</property>
dfs.exclude文件实例: pslave1 pslave2 pslave3
- 用如下命令启动Decommission:
hdfs dfsadmin -refreshNodes
- 等待节点下线(In Decommission),下线完成后(Decommissioned)即可停止datanode、nodemgr等进程。