1. 程式人生 > >Sqoop從HDFS匯出Hive表到Mysql的shell指令碼

Sqoop從HDFS匯出Hive表到Mysql的shell指令碼

因統計需求,要指將Spark SQL計算好的結果,從Hive匯出到Mysql資料庫,於是寫了個批量導的指令碼。
執行引數: 開始時間 結束時間
注意點:
1. 在shell中,sqoop語句的每一行末尾不能有多餘的空格,否則執行時報錯!
2. shell中的if條件判斷,只能是數字和才能比較大小,需要將時間轉成時間戳!
程式碼如下:

#!/bin/bash
source /etc/profile 

echo ................................Sqoop export data from:$1 to:$2

endtime=`date -d "$2" +%s`

for
((i=0;;i++)) do day=$(date "+%Y-%m-%d" -d "$1 $i day") time=`date -d "$day" +%s` if [ ${time} -gt $endtime ] then break else sqoop export --connect jdbc:mysql://127.0.0.1:3306/brsface_res?characterEncoding=utf8 \ --username root \ --password 123456 \ --columns 'camera_id,total,create_time'
\ --export-dir hdfs://127.0.0.1:9000/opt/tools/hive/warehouse/brsface.db/metric_day_passinfo_t/dt=${day} \ --table metric_day_passinfo_t \ --input-fields-terminated-by '\001' \ -m 1 echo ................................Sqoop export data:${day} ... fi done