hdfs問題 hdfs 跨集群資料遷移報錯

2021-10-13 10:14:26 字數 2466 閱讀 4989

目前想要讓kerberos集群的hdfs資料遷移到非kerberos集群的hdfs上,使用以下命令報錯

sudo kinit hive

sudo klist

sudo hadoop distcp hdfs://:8020/user/hive/warehouse/test.db/* hdfs://:8020/user/hive/warehouse/test.db

報錯截圖

檢視官網發現,安全集群和非安全集群之間進行資料遷移時需要配置引數ipc.client.fallback-to-******-auth-allowedtrue

ipc.client.fallback-to-******-auth-allowed引數用法:client使用安全連線去鏈結一台非安全伺服器時,伺服器提示client切換到sasl ******認證模式(非安全server asks us to fall back to ****** auth, but this client is configured to only allow secure connections),如果設定為true,則client同意切換到非安全連線,如果false,則退出連線。在訪問kerberos環境的configuration中增加ipc.client.fallback-to-******-auth-allowed為true的配置表示允許客戶端使用簡單認證模式

於是命令修改為

注意:如果為分割槽表則可能出現集群遷移後,使用count統計記錄數時顯示為0,這是因為hive從低版本公升級到高版本或者做hadoop的集群資料遷移時,需要重新建立表和表分割槽,由於使用的是動態分割槽,所以需要重新重新整理分割槽表字段,否則無法檢視資料

在hive中執行以下命令即可自動更新元資料中的表分割槽:

msck repair table 表名

檢視官網發現,安全集群和非安全集群之間進行資料遷移時需要配置引數ipc.client.fallback-to-******-auth-allowedtrue在安全集群上,將core-site.xml中的ipc.client.fallback-to-******-auth-allowed設定為true

>

>

ipc.client.fallback-to-******-auth-allowedname

>

>

truevalue

>

property

>

如果集群配置了以上引數則可以使用下面的命令(此配置在hdfs中進行配置)

#將資料從不安全的集群遷移到安全的集群

hadoop distcp hdfs://:50070/path /path

#將資料從安全的集群遷移到不安全的集群

hadoop distcp hdfs://:500470/path /path

也可以在執行distcp命令時將此作為引數傳遞。如果要這樣做,請轉到步驟2。

如果您未配置ipc.client.fallback-to-******-auth-allowed並希望將其作為引數傳遞,請從安全群集中執行以下命令:

#將資料從不安全的集群遷移到安全的集群

hadoop distcp -d ipc.client.fallback-to-******-auth-allowed=true webhdfs://:50070/path /path

#將資料從安全的集群遷移到不安全的集群

hadoop distcp -d ipc.client.fallback-to-******-auth-allowed=true webhdfs://:50470/path /path

如果啟用了tls,請用swebhdfs替換webhdfs。

HDFS集群的平衡

檔案塊在集群中均勻分布的好處 hdfs能達到最佳工作效能,乙個負載不均衡的集群可能影響mapreduce的本地化優勢,為負載搞的資料節點帶來更大的壓力。1.選用預設的每個節點20個map來執行distcp來進行資料複製,可以避免不均衡的情況。總之讓map的數量多於集群中節點的數量。2.均衡器程式是h...

HDFS集群的平衡

檔案塊在集群中均勻分布的好處 hdfs能達到最佳工作效能,乙個負載不均衡的集群可能影響mapreduce的本地化優勢,為負載搞的資料節點帶來更大的壓力。1.選用預設的每個節點20個map來執行distcp來進行資料複製,可以避免不均衡的情況。總之讓map的數量多於集群中節點的數量。2.均衡器程式是h...

聯邦HDFS集群搭建

聯邦hdfs集群搭建 啟動步驟 先啟動zookeeper集群 再在5 6 7上啟動journalnode hadoop daemon.sh start journalnode 在bi下nn1上 hdfs namenode format clusterid itcast hdfs zkfc forma...