从mysql导入hive脚本

#!/bin/bash
#全量更新kn1_base_conf_group

#环境设置:u 不存在的变量报错;e 发生错误退出;pipefail 管道有错退出
set -euo pipefail

#########要更改变的变量#######
#mysql数据库信息
MYSQL_HOST="192.168.1.138"
MYSQL_PORT="63751"
MYSQL_USER='user'
MYSQL_PASS='MYSQL_PASSWORD'
MYSQL_DB='dw'
MYSQL_TABLE='kn1_base_conf_group'
################


# 临时文件目录
TMP_DIR="/var/tmp"
md5=`echo -n "${MYSQL_TABLE}"|md5sum|cut -d ' ' -f1`

echo "=======全量更新${MYSQL_TABLE}到${HIVE_DB_PATH},========"
cd ${TMP_DIR}
# MySQL导出数据到文件的路径
TMP_SAVE_NAME="${MYSQL_TABLE}-$md5.txt"
TMP_SAVE_PATH="${TMP_DIR}/${TMP_SAVE_NAME}"

echo "=======从mysql导出数据文件========"
# mysql查询命令
mysqlQuery="select day_key,\
group_id,\
group_name,\
realgroup_id,\
realgroup_name,\
app_service_id,\
app_service_name,\
service_state,\
node_id,\
node_name,\
area,\
province,\
isp,\
isp_cnname,\
province_name,\
area_name from ${MYSQL_DB}.${MYSQL_TABLE};"


rm -f ${TMP_SAVE_NAME}
echo "mysql -N -u${MYSQL_USER} -p\"${MYSQL_PASS}\" -h${MYSQL_HOST} -P${MYSQL_PORT} -D ${MYSQL_DB} --default-character-set=utf8   -e \"$mysqlQuery\"  | sed 's/\t/|/g;' > ${TMP_SAVE_PATH}"

mysql -N -u${MYSQL_USER} -p"${MYSQL_PASS}" -h${MYSQL_HOST} -P${MYSQL_PORT} -D ${MYSQL_DB} --default-character-set=utf8   -e "$mysqlQuery"  | sed 's/\t/|/g;' > ${TMP_SAVE_PATH}

#echo "=======压缩数据文件========"
#echo "tar -zcf ${HIVE_FILE_NAME}  ${TMP_SAVE_NAME}"
#tar -zcvf ${HIVE_FILE_NAME}  ${TMP_SAVE_NAME} 

echo "=======导入hadoop========"

# hive数据库信息
HIVE_DB="dw"
HIVE_TABLE="kn1_base_conf_group"

#hive的hdfs路径
HIVE_DIR="/user/hive/warehouse"
HIVE_DB_PATH="${HIVE_DIR}/${HIVE_DB}/${HIVE_TABLE}"
HIVE_FILE_NAME="${HIVE_TABLE}.txt"
HIVE_TABLE_PATH="${HIVE_DB_PATH}/${HIVE_FILE_NAME}"

echo "=======hadoop 路径========"
echo "$HIVE_DB_PATH"

#hadoop命令前辍
CMD_PRE="sudo -u hdfs "

#hadoop命令
CDM_HADOOP=${CMD_PRE}" hadoop fs "


set +e
echo "${CDM_HADOOP} -rm -r ${HIVE_DB_PATH}"
echo "${CDM_HADOOP} -mkdir -p ${HIVE_DB_PATH}"
echo "${CDM_HADOOP} -copyFromLocal ${TMP_SAVE_NAME} ${HIVE_TABLE_PATH}"
${CDM_HADOOP} -rm -r ${HIVE_DB_PATH}
${CDM_HADOOP} -mkdir -p ${HIVE_DB_PATH}
${CDM_HADOOP} -copyFromLocal ${TMP_SAVE_NAME} ${HIVE_TABLE_PATH}
set -e

echo "=======hive显示========"
#hive sql片断
HIVE_LIMIT=10

#hive SQL
hiveSelectSql="use ${HIVE_DB};
select * from ${HIVE_TABLE} limit ${HIVE_LIMIT};
"

CDM_HIVE=${CMD_PRE}" hive "

echo "${CDM_HIVE} -e \"$hiveSelectSql\""
${CDM_HIVE} -e "$hiveSelectSql"
sudo -u hdfs impala-shell --impalad=121.226.240.$res:21000 -q "REFRESH ${HIVE_DB}.${HIVE_TABLE};"
#sudo -u hdfs impala-shell --impalad=121.226.240.$res:21000 -q "compute stats ${HIVE_DB}.${HIVE_TABLE};"
rm -f ${TMP_SAVE_PATH}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值