shell腳本調用hive示例

方法一:

   建立shell腳本如下run.sh如下:

 

  1. #!/bin/sh  
  2.   
  3. #參數傳遞  
  4.   
  5. source /etc/profile;  
  6. source ~/.bash_profile;  
  7. BASEDIR=`dirname $0`  
  8. cd $BASEDIR  
  9.   
  10. #classpath優先當前目錄  
  11. CLASSPATH=$BASEDIR  
  12. #classpath其次是config目錄  
  13. #classpath再次是lib目錄下面的所有jar包  
  14.   
  15. #設置參數  
  16. D=`date +%Y-%m-%d`  
  17. YESTODAY=`date -d "1 days ago" +%Y-%m-%d`  
  18.   
  19. if [ $# == 2  ]; then  
  20.   YESTODAY=$2  
  21. fi  
  22.   
  23. if [ $# == 4  ]; then  
  24.   D=$4  
  25.   YESTODAY=$2  
  26. fi  
  27.   
  28. #HQL  
  29. hive<<EOF  
  30. LOAD DATA LOCAL INPATH '$HADOOP_DATA_HOME/consume-$YESTODAY.csv' OVERWRITE INTO TABLE tlbb.consume_log PARTITION (dt='$YESTODAY');  
  31. EOF  

 方法二、

  #!/bin/sh

  1. #參數傳遞  
  2.   
  3. source /etc/profile;  
  4. source ~/.bash_profile;  
  5. BASEDIR=`dirname $0`  
  6. cd $BASEDIR  
  7.   
  8. #classpath優先當前目錄  
  9. CLASSPATH=$BASEDIR  
  10. #classpath其次是config目錄  
  11. #classpath再次是lib目錄下面的所有jar包  
  12.   
  13. #設置參數  
  14. D=`date +%Y-%m-%d`  
  15. YESTODAY=`date -d "1 days ago" +%Y-%m-%d`  
  16.   
  17. if [ $# == 2  ]; then  
  18.   YESTODAY=$2  
  19. fi  
  20.   
  21. if [ $# == 4  ]; then  
  22.   D=$4  
  23.   YESTODAY=$2  
  24. fi  
  25.   
  26. echo "LOAD DATA LOCAL INPATH '/data/tlbb/hadoop_data/billlogout-$YESTODAY.csv' OVERWRITE INTO TABLE tlbb.logout_log PARTITION (dt='$YESTODAY');" | hive   

 然後使用crontab進行定時調度了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章