在 Linux 环境下迁移 Hadoop,通常指把 Hadoop 集群(或单节点)从一台/一批机器迁移到另一台/另一批机器,或从一个目录迁移到另一个目录。下面按常见场景给你一套实用方案。
stop-dfs.sh
stop-yarn.sh
cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop_conf
tar -czvf hadoop.tar.gz $HADOOP_HOME
scp hadoop.tar.gz user@new-host:/opt/
tar -xzvf hadoop.tar.gz -C /opt/
vi $HADOOP_HOME/etc/hadoop/core-site.xml
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
vi $HADOOP_HOME/etc/hadoop/workers
hadoop distcp hdfs://old-cluster:9000/ hdfs://new-cluster:9000/
常见参数:
hadoop distcp -m 20 -update -delete hdfs://old/ hdfs://new/
说明:
-m:并行数-update:只同步变化-delete:删除目标多出文件scp -r /data/hadoop/dfs/name new-nn:/data/hadoop/dfs/
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/dfs/name</value>
</property>
hdfs namenode -format
⚠️ 不要随便 format 已有数据
mv /usr/local/hadoop /data/hadoop
vi ~/.bashrc
export HADOOP_HOME=/data/hadoop
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
hdfs dfsadmin -report
hdfs fsck /
yarn node -list
cat /data/hadoop/dfs/name/current/VERSION
cat /data/hadoop/dfs/data/current/VERSION
chown -R hadoop:hadoop /data/hadoop
/etc/hosts
/etc/hostname
如果你能告诉我:
我可以给你一套更精确的迁移命令。