【hdfs问题】hdfs 跨集群数据迁移报错

问题

目前想要让Kerberos集群的hdfs数据迁移到非Kerberos集群的hdfs上,使用以下命令报错

sudo kinit hive
sudo klist
sudo hadoop distcp hdfs://<secure_namenode>:8020/user/hive/warehouse/test.db/* hdfs://<insecure_namenode>:8020/user/hive/warehouse/test.db

报错截图
在这里插入图片描述

解决方案

官方链接:https://docs.cloudera.com/documentation/enterprise/latest/topics/cdh_admin_distcp_secure_insecure.html

查看官网发现,安全集群和非安全集群之间进行数据迁移时需要配置参数ipc.client.fallback-to-simple-auth-allowedtrue
ipc.client.fallback-to-simple-auth-allowed参数用法:client使用安全连接去链接一台非安全服务器时,服务器提示client切换到SASL SIMPLE认证模式(非安全Server asks us to fall back to SIMPLE auth, but this client is configured to only allow secure connections),如果设置为true,则client同意切换到非安全连接,如果false,则退出连接。在访问Kerberos环境的Configuration中增加ipc.client.fallback-to-simple-auth-allowed为true的配置表示允许客户端使用简单认证模式
于是命令修改为

sudo hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true -m 30 webhdfs://hadoop1:50070/user/hive/warehouse/* /user/hive/warehouse/

在这里插入图片描述
在这里插入图片描述
注意:如果为分区表则可能出现集群迁移后,使用count统计记录数时显示为0,这是因为hive从低版本升级到高版本或者做hadoop的集群数据迁移时,需要重新创建表和表分区,由于使用的是动态分区,所以需要重新刷新分区表字段,否则无法查看数据
在hive中执行以下命令即可自动更新元数据中的表分区:

msck repair table 表名

在这里插入图片描述

扩展

官方链接:https://docs.cloudera.com/documentation/enterprise/latest/topics/cdh_admin_distcp_secure_insecure.html

查看官网发现,安全集群和非安全集群之间进行数据迁移时需要配置参数ipc.client.fallback-to-simple-auth-allowedtrue

  1. 在安全集群上,将core-site.xml中的ipc.client.fallback-to-simple-auth-allowed设置为true

    <property>
      <name>ipc.client.fallback-to-simple-auth-allowed</name>
      <value>true</value> 
    </property>
    

    如果集群配置了以上参数则可以使用下面的命令(此配置在hdfs中进行配置)

    #将数据从不安全的集群迁移到安全的集群
    hadoop distcp hdfs://<insecure_namenode>:50070/path /path
    #将数据从安全的集群迁移到不安全的集群
    hadoop distcp hdfs://<secure_namenode>:500470/path /path
    

    也可以在运行distcp命令时将此作为参数传递。如果要这样做,请转到步骤2。

  2. 如果您未配置ipc.client.fallback-to-simple-auth-allowed并希望将其作为参数传递,请从安全群集中运行以下命令:

    #将数据从不安全的集群迁移到安全的集群
    hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true webhdfs://<insecure_namenode>:50070/path /path
    #将数据从安全的集群迁移到不安全的集群
    hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true webhdfs://<secure_namenode>:50470/path /path
    

    如果启用了TLS,请用swebhdfs替换webhdfs。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈小哥cw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值