温馨提示×

linux hdfs配置怎么迁移

小樊
48
2026-09-10 12:38:21
栏目: 智能运维

在 Linux 上将 HDFS 配置迁移(比如从一台机器/集群迁移到另一台,或重装系统后恢复),通常分为几种场景。下面按最常见、最稳妥的方式说明。


一、HDFS 配置都包含什么?

HDFS 的核心配置主要在:

$HADOOP_HOME/etc/hadoop/

关键文件:

  • core-site.xml
  • hdfs-site.xml
  • hadoop-env.sh
  • workers(或 slaves)
  • log4j.properties(可选)
  • 证书 / keytab(如果开启了 Kerberos)

二、场景 1:同版本 HDFS,迁移配置(最常见)

1️⃣ 备份原配置

在旧节点执行:

cd $HADOOP_HOME
tar czf hdfs-conf-backup.tar.gz etc/hadoop

拷贝到新机器:

scp hdfs-conf-backup.tar.gz user@new-host:/opt/

2️⃣ 新机器解压配置

tar xzf hdfs-conf-backup.tar.gz -C $HADOOP_HOME

⚠️ 注意:

  • 新机器的 hostname / IP 可能不同
  • 需要检查:
    fs.defaultFS
    dfs.namenode.rpc-address
    dfs.namenode.http-address
    

3️⃣ 修改必要参数

例如:

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://new-nn:9000</value>
</property>

并确保:

  • workers 文件中的主机名正确
  • 各节点间 SSH 免密
  • /etc/hosts 一致

4️⃣ 启动验证

start-dfs.sh
hdfs dfsadmin -report

三、场景 2:连数据一起迁移(NameNode + DataNode)

⚠️ 只拷配置是不够的

必须迁移的内容

  1. 配置文件(如上)
  2. NameNode 元数据
    $HADOOP_HOME/dfs/name
    
  3. DataNode 数据
    $HADOOP_HOME/dfs/data
    

步骤

  1. 停止集群
    stop-dfs.sh
    
  2. 打包元数据 + 数据
    tar czf hdfs-data.tar.gz dfs
    
  3. 拷贝到新机器相同目录
  4. 修改 hdfs-site.xml 中路径
  5. 格式化(仅 NameNode 元数据丢失时)
    hdfs namenode -format
    

四、场景 3:跨大版本升级迁移

⚠️ 不能直接拷贝 dfs 目录

正确做法:

  1. 旧集群正常运行
  2. 新集群部署新版本
  3. 使用:
    hdfs dfs -cp /
    
    或
    distcp
    
  4. 切换客户端配置

五、Kerberos 环境特别注意

需迁移:

  • krb5.conf
  • keytab 文件
  • hadoop.security.authentication=kerberos

权限必须严格:

chmod 600 *.keytab

六、快速检查清单 ✅

  • [ ] core-site.xml
  • [ ] hdfs-site.xml
  • [ ] workers
  • [ ] SSH 免密
  • [ ] 防火墙 / 端口
  • [ ] 数据目录权限

如果你能告诉我:

  • 是 单机 / 集群
  • 是否 带数据
  • Hadoop 版本是否变化

我可以给你精确的一步一步命令。

0 踩