通过创建临时表合并某一个库的hive小文件

来源:互联网 发布:mac qq远程桌面 编辑:程序博客网 时间:2024/05/18 03:36
#!/bin/bash#需要指定hive中的库名#set -xset -eDB=$1if [ -z $1 ];then    echo “Usage:$0  DbName”    exit 1fi#注释掉cron对应的计划任务row=$(sed -n '/sjob_exec.sh/=' /etc/crontab)sed -i "$row s/^/#/" /etc/crontab#获取hive表定义ret=$(sudo -u hdfs hive -e "use ${DB};show tables;"|grep -v _tmp|grep -v importinfo)for tem in $ret;do    echo ${tem}    sudo -u hdfs hive -e "use ${DB};drop table ${tem}_tmp"    sudo -u hdfs hive -e "use ${DB};create table ${tem}_tmp_1 as select * from ${tem}"    sudo -u hdfs hive -e "use ${DB};alter table ${tem} rename to ${tem}_tmp"    sudo -u hdfs hive -e "use ${DB};alter table ${tem}_tmp_1 rename to ${tem}"doneimpala-shell -q 'invalidate metadata' -i hslave1#恢复对应的cron任务row=$(sed -n '/sjob_exec.sh/=' /etc/crontab)sed -i "$row s/#//" /etc/crontab
0 0
原创粉丝点击