hive新集群批量建表

2021-10-13 10:47:12 字數 927 閱讀 5214

工作中,遇到hive集群搬遷,從a集群,遷到b集群,相應的資料表也要隨之遷移,

但hive表一般都比較多,下面實現批量處理方式

1. 獲得待搬遷的資料表清單table_list.txt。

hive -e "use zx_zz; show tables;" > table_list.txt
2. 處理建表語句。

# 執行命令,在每個建表語句後換行追加「;」

for i in `cat table_list.txt`

do hive -e"use zx_zz;show create table $">>create_table_sql.txt

echo \; >>create_table_sql.txt

done

# 去掉「createtab_stmt」

sed -i 's/createtab_stmt//g' create_table_sql.txt

# 將a集群替換成b集群

sed -i 's/a/b/g' create_table_sql.txt

3. 開啟檔案create_table_sql.txt,在首行加上"use zx_zz;",匯出檔案

4. 匯入檔案,在b集群伺服器上執行命令"hive -f create_table_sql.txt"

5. 修復表

hive -e "use zx_zz; show tables;" > tables.txt

for i in $(cat tables.txt)

do name='zx_zz.'$i

hive -e "msck repair table $name;"

echo "msck repair table $name"

done

CDH集群部署hive建表中文亂碼

背景 部署cdh集群的 hive 服務,選用 mysql 作為 hive 元資料的儲存資料庫,通過 hive cli 建表時發現中文注釋均亂碼。現象 hive端建表中文注釋亂碼。定位 已經確認過 mysql 庫的預設編碼是 utf 8,並且 mysql 中建庫建表不存在中文亂碼的情況。於是檢視hiv...

shell指令碼的方式批量匯出hive建表語句

最近遇到的乙個工作任務。由於公司集群不支援使用hive命令,只能使用beeline命令。通過beeline e 或 beeline f 匯出的結果,會包含一些其他多餘的資訊,不好過濾。同時beeline e 只能跟一條sql語句。於是使用spark sql來完成指令碼編寫。第一版spark sql ...

批量匯出hive表結構 生成建表語句

說明 最近在做集群資料遷移,需要把hive所有的表同步至新的集群。指令碼 bin bash mkdir p opt hive tables tablesddl hive e show databases opt hive databases.txt echo cat database cat opt...