配置单元移动并还原某些分区

时间:2018-08-23 08:16:40

标签: hadoop hive export hdfs metadata

我有一个50TB托管分区(按日期)的Hive表,我想从中将一些旧分区移至外部HDD,以便在以后需要时将其还原。

脚本如下:

移出:

$ hdfs dfs -get ${HIVE_WAREHOUSE_TABLE_PATH}/ingest_date=2016-01-01 ${LOCAL_TABLE_PATH}/2016-01-01
$ hdfs dfs -rm -r -skipTrash ${HIVE_WAREHOUSE_TABLE_PATH}/ingest_date=2016-01-01
$ hive -e "ALTER TABLE ${TABLE} DROP IF EXISTS PARTITION (ingestion_date='2016-01-01') PURGE;" 

还原:

$ hdfs dfs -put ${LOCAL_TABLE_PATH}/2016-01-01 ${HIVE_WAREHOUSE_TABLE_PATH}/ingest_date=2016-01-01
$ hive -e "ALTER TABLE ${TABLE} ADD PARTITION (ingest_date='2016-01-01') LOCATION ${HIVE_WAREHOUSE_TABLE_PATH}/ingest_date=2016-01-01;"

我是否错过了上述策略中的某些内容?

我尝试过:

$ hive --hivevar local_path=${LOCAL_TABLE_PATH} -e "EXPORT TABLE myDatabase.theTable PARTITION (ingest_date='2016-01-01') to '${local_path}/2016-01-01';"

但这对于使用CopyTable进行1年分区需要花费太长时间,我正努力避免这种情况。

谢谢你,

0 个答案:

没有答案