由于需要在测试环境测试hive表逻辑,但是测试集群没有相关表及数据,
所以采用最简单的方式:通过hue从生产集群下载文件,然后通过hue上传到测试集群
但是。。
hive表是分区的而且每个分区下面都N多个小文件,于是编写shell脚本:
#! /bin/bash
mkdir -p ./tmp/table
rssc_array=("201901" "201902" "201903" "201904" "201905")
for i in ${rssc_array[*]}
do
hdfs dfs -get /user/hive/table/partition_brand=vw/partition_date=$i ./tmp/table/
done
zip -r twdwv1.zip ./tmp/table/
hdfs dfs -put twdwv1.zip /user/asmp/sql/
rm -rf ./tmp/table
echo "File successfully deleted"
for i in ${rssc_array[*]}
do
hdfs dfs -get /user/hive/table/partition_brand=skd/partition_date=$i ./tmp/table/
done
zip -r twdskd1.zip ./tmp/table/
hdfs dfs -put twdskd1.zip /user/asmp/sql/
rm -rf ./tmp/wd_tt_workitem_detail
rm -f twdskd1.zip
echo "File successfully deleted2"
(1)根据品牌分区,下载成两个压缩文件,并上传到HDFS
(2)根据数组自定义下载不同日期的文件
然后通过hue把压缩文件下载到本地,解压后上传到测试集群
最后别忘记使用msck命令修复表分区结构:
hive> msck repair table table_name;