在 Linux 环境下对 Hadoop(HDFS)进行扩容,通常分为 增加 DataNode 节点 和 现有节点加磁盘 两种方式。下面按常见场景说明。
适合集群规模扩大。
vi /etc/hosts
添加:
新IP newnode
在 NameNode 上:
vi $HADOOP_HOME/etc/hadoop/workers
(老版本叫 slaves)
添加:
newnode
scp -r $HADOOP_HOME newnode:$HADOOP_HOME
在新节点执行:
hdfs --daemon start datanode
hdfs dfsadmin -report
能看到新 DataNode 即扩容成功。
适合单机磁盘不够。
mkfs.ext4 /dev/sdb
mkdir /data2
mount /dev/sdb /data2
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs</value>
</property>
mkdir -p /data2/dfs
chown -R hdfs:hadoop /data2/dfs
hdfs --daemon stop datanode
hdfs --daemon start datanode
新节点加入后,数据不会立刻分布均匀。
hdfs balancer
hdfs dfsadmin -setBalancerBandwidth 104857600
(单位:Byte/s)
如果是 YARN 集群:
yarn --daemon start nodemanager
验证:
yarn node -list
decommission我可以给你 精确到命令级的扩容方案。