shell脚本调用hive示例

方法一:

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

#!/bin/sh

#参数传递

source /etc/profile;
source ~/.bash_profile;
BASEDIR=`dirname $0`
cd $BASEDIR

#classpath优先当前目录
CLASSPATH=$BASEDIR
#classpath其次是config目录
#classpath再次是lib目录下面的所有jar包

#设置参数
D=`date +%Y-%m-%d`
YESTODAY=`date -d "1 days ago" +%Y-%m-%d`

if [ $# == 2  ]; then
  YESTODAY=$2
fi

if [ $# == 4  ]; then
  D=$4
  YESTODAY=$2
fi

#HQL
hive<<EOF
LOAD DATA LOCAL INPATH '$HADOOP_DATA_HOME/consume-$YESTODAY.csv' OVERWRITE INTO TABLE tlbb.consume_log PARTITION (dt='$YESTODAY');
EOF

 方法二、

  #!/bin/sh

#参数传递

source /etc/profile;
source ~/.bash_profile;
BASEDIR=`dirname $0`
cd $BASEDIR

#classpath优先当前目录
CLASSPATH=$BASEDIR
#classpath其次是config目录
#classpath再次是lib目录下面的所有jar包

#设置参数
D=`date +%Y-%m-%d`
YESTODAY=`date -d "1 days ago" +%Y-%m-%d`

if [ $# == 2  ]; then
  YESTODAY=$2
fi

if [ $# == 4  ]; then
  D=$4
  YESTODAY=$2
fi

echo "LOAD DATA LOCAL INPATH '/data/tlbb/hadoop_data/billlogout-$YESTODAY.csv' OVERWRITE INTO TABLE tlbb.logout_log PARTITION (dt='$YESTODAY');" | hive 

 然后使用crontab进行定时调度了

你可能感兴趣的:(shell脚本)