HIVE資料遷移3

2021-09-27 03:28:31 字數 852 閱讀 4025

集群a上hive表資料需同步到集群b上,由於每張表做了日分割槽,傳輸部分日期資料,通過手工方式一一篩選比較複雜,編寫指令碼實現。

#!/bin/sh

hadoop_cmd="hadoop distcp -update -bandwidth 50"

declare -a dict    //宣告字典

dict['talbe1']="/hdfs上table1對應的上層目錄/table1"

dict['talbe2']="/hdfs上table2對應的上層目錄/table2"

start_day="20190303"

end_day="20190509"

for table in $(echo $)      //遍歷字典所有key值,即表名

dohdfs_path=$(echo $)  //賦值每張表對應的hdfs路徑

start_date=`date -d "$start_day" +%y%m%d`  //獲取日期變數

end_date=`date -d "$end_day" +%y%m%d`

while [[ $start_date < $end_date ]]

dohadoop distcp -update -bandwith 15 $hdfs_src$hdfs_path/dt=$start_date $hdfs_dst$hdfs_path/dt=$start_date

start_date=`date -d "+1 day $start_date" +%y%m%d`

done

done

之後在集群b上建庫建表,執行msck repair table 表名。這步後面再更新到指令碼中。

hive資料遷移

資料遷移指令碼 1 在原集群上建立,並設定相應許可權 hadoop fs mkdir tmp hive export 2 生成匯出指令碼 hive e use fangyc show tables awk sed s g export.hql fangyc 是資料庫名,根據實際情況修改 3 手工匯出...

hive資料遷移

網路互通的兩個hadoop集群中,可執行如下命令,將nn1節點所在集群a上目錄a.dir拷貝到nn2節點所在集群b目的b.dir上 hadoop distcp i hdfs nn1 8020 a.dir hdfs nn2 8020 b.dir詳情參考 設定預設需要匯出的hive資料庫為default...

遷移hive資料

新集群的資料遷移到老集群,往往會遇到很多問題 1.小檔案多 2.老集群效能比較差 3.資料量大 使用資料遷移工具nifi 該工具的特點是輕量,對小檔案遷移支援度高,大檔案遷移慢 遇到的問題 1.曾經在老集群寫spark程式合併小檔案,但老集群效能比較低,程式跑了一晚上都沒有合併完成乙個月 2.將小集...