HDFS 扩容
本页目录
HDFS 扩容#
动态添加DataNode节点#
本节将描述 HDFS 扩容的方法,并假设原有集群主节点分别为 hdfs1,hdfs2,hdfs3,新添加的节点为 hdfs4。其中hdfs1为active namenode角色。
安装#
配置yum源,安装lava命令行管理工具, yum 源需自行配置
ssh hdfs1
# 从yum源所在机器(假设为192.168.1.10)获取repo文件
scp root@192.168.1.10:/etc/yum.repos.d/oushu.repo /etc/yum.repos.d/oushu.repo
# 追加yum源所在机器信息到/etc/hosts文件
yum clean all
yum makecache
yum install -y lava
使用 yum install 的安装方式:
ssh hdfs4
yum install -y hdfs
准备#
在hdfs1节点创建一个hdfshost
文件
ssh hdfs1
touch ${HOME}/hdfshost
配置hdfshost内容为所有安装HDFS的服务的hostname
hdfs1
hdfs2
hdfs3
hdfs4
同步配置之前需要确认hdfs-site.xml文件中的 dfs.datanode.data.dir参数是否符合预期:
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/hdfs/datanode,/data2/hdfs/datanode</value>
</property>
conf中的配置文件同步到新节点:
lava scp -r -f hdfs4 /usr/local/oushu/conf/common/* =:/usr/local/oushu/conf/common/
新节点创建DataNode目录:
ssh hdfs4
sudo su root
mkdir -p /data1/hdfs/datanode
mkdir -p /data2/hdfs/datanode
chmod -R 755 /data1/hdfs
chmod -R 755 /data2/hdfs
chown -R hdfs:hadoop /data1/hdfs
chown -R hdfs:hadoop /data2/hdfs
mkdir -p /var/lib/hadoop-hdfs/
chmod -R 755 /var/lib/hadoop-hdfs/
chown -R hdfs:hadoop /var/lib/hadoop-hdfs/
Kerberos准备(可选)#
如果开启Kerberos,则需要在所有HDFS节点安装Kerberos客户端。
lava ssh -f ${HOME}/hdfshost -e "yum install -y krb5-libs krb5-workstation"
启动#
步骤如下:
启动datanode
sudo -u hdfs hdfs --daemon start datanode
在NameNode上刷新节点
hdfs dfsadmin -refreshNodes
启动 balancer
start-balancer.sh
添加新节点的IP或hostname到slave文件中,并分发到每台机器上
lava scp -r -f hdfs4 /usr/local/oushu/conf/common/* =:/usr/local/oushu/conf/common/
动态删除DataNode节点#
1,配置NameNode的hdfs-site.xml,增加dfs.hosts.exclude配置
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/oushu/conf/common/excludes</value>
</property>
2,在对应路径(/usr/local/oushu/conf/common/)下新建 excludes 文件,并写入待删除DataNode的ip或域名
3,在NameNode上刷新所有DataNode并进行数据平衡
hdfs dfsadmin -refreshNodes
start-balancer.sh