1. 程式人生 > >通過shell指令碼做定時任務,用sqoop匯出資料

通過shell指令碼做定時任務,用sqoop匯出資料

一、shell指令碼

  1. #!/bin/bash  
  2. #coding=UTF-8  
  3. #date_year=$(date +%Y)  
  4. #echo $date_year  
  5. source /etc/profile  
  6. for((i=3;i<=8;i++));  
  7. do  
  8. /opt/sqoop-1.4.6/bin/sqoop import --connect jdbc:mysql://localhost:3306/ablesky_play_log   
  9. --query "SELECT id_cpl,id_account_cpl,id_course_cpl,play_time_cpl,CONCAT_WS('_', id_cpl, play_time_cpl)AS rowkey FROM sta_course_play_log_cpl_2017_0"$i" WHERE 1=1 AND id_account_cpl != 19 AND is_trial_cpl=1 AND \$CONDITIONS"   
  10. --split-by id_cpl    
  11. --hbase-table courseAuditionLog  
  12.  --column-family info   
  13. --hbase-row-key rowkey   
  14.  --username 'root'  
  15.  -password root  
  16. done   

動態插入變數只需要在query後的兩個字串之間即可,不用++連線

二、定時任務設定

  1. 25 16 * * *     /usr/bin/sh  /opt/cronfile/test/zhang/sqoop.sh >> /opt/cronfile/test/zhang/logs/sqoop_`date +\%Y\%m\%d\%H\%M\%S`.log 2>&1