cp hive_export.hql hive_import.sql sed-i's/export table/import table/g' hive-import.hql sed-i's/ to / from /g' hive-import.hql
4. 上傳導入腳本后在新集群執行
hive -database cp_data -f hive-import.sql
三、數據遷移(因為新集群和阿里云的對象存儲打通了,所以我的數據都放到了oss上)
1.按項目遷移代碼
-----------------------格式轉換后臺shell腳本 #!/bin/bash echo'start' for t in`cat flag.txt`#同一行中的內容如果有空格,會被拆分成多個 do echo"$t" table=$t echo'' >./$table.sql echo' use tools; set spark.dynamicAllocation.enabled=false;--關閉executor動態分配功能,防止單個任務分配的資源太多 set spark.executor.instances=3;--設置可用的executor個數(3個) set spark.executor.cores=5;--設置executor擁有的core數(5C) set spark.executor.memory=8000000000b;--設置executor擁有的內存數(8G) set mapreduce.map.memory.mb=3072; set mapreduce.reduce.memory.mb=3072; set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; set hive.exec.max.dynamic.partitions.pernode=10000; set hive.exec.max.dynamic.partitions=10000; set hive.exec.max.created.files=10000; set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; set mapred.max.split.size=50000000; set mapred.min.split.size.per.node=50000000; set mapred.min.split.size.per.rack=50000000; ' >>./$table.sql echo"insert overwrite table ${table}_tran partition(pt) select * from $table;" >>./$table.sql done echo'end'