在 CentOS 上向 HDFS 集群添加 DataNode(节点),一般步骤如下(假设你已有可运行的 Hadoop 集群):
在新 CentOS 节点上:
hostnamectl set-hostname hadoop-newnode
/etc/hosts(所有节点都要能互相解析)192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 hadoop-newnode
systemctl stop firewalld
systemctl disable firewalld
yum install -y ntp
systemctl enable ntpd
systemctl start ntpd
useradd hadoop
passwd hadoop
在 NameNode 上:
ssh-copy-id hadoop-newnode
yum install -y java-1.8.0-openjdk
java -version
从已有节点拷贝:
scp -r /opt/hadoop hadoop@hadoop-newnode:/opt/
或重新解压相同版本 Hadoop。
vi ~/.bashrc
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
(Hadoop 3 用 workers)
在 NameNode 上:
vi $HADOOP_HOME/etc/hadoop/workers
添加:
hadoop-newnode
在新节点执行:
hdfs --daemon start datanode
start-dfs.sh
http://namenode:9870
→ Datanodes 中查看新节点
hdfs dfsadmin -report
新节点加入后,数据不会立刻均衡:
hdfs balancer
ssh-copy-id如果你用的是 CDH / Ambari / Hadoop 3.x,步骤会略有不同,可以告诉我你用的 Hadoop 版本和管理方式,我可以给你更精确的方案。