hive: command not found错误解决

原创 2017年01月03日 11:57:20

背景:在shell脚本中简单定义hive的命令,并且通过crontab定时任务机制去调度,实现定时动态添加hive表分区。
**环境:**hadoop2.5.2+hive0.14(0.13)+zk3.3
问题描述:
shell脚本如下:

target_date=`date '+%Y-%m-%d' -d "+2 days"`
inc_mon=`date '+%Y%m' -d "0 days $target_date"`
inc_day=`date '+%d' -d "0 days $target_date"`

hive -e "use ODS_XXXXX;ALTER TABLE XXXXXXX ADD IF NOT EXISTS PARTITION (inc_mon='${inc_mon}',inc_day='${inc_day}') LOCATION '/db/ODS_XXXXXX/XXXXXX/${inc_mon}/${inc_day}'"

手动执行脚本测试是没有问题的,但是crontab定时执行则会出现“hive: command not found”错误。
原因及解决方案:
即便hive的环境变量已经设置成功,但是crontab中执行代码时,并不会解析到环境变量,需要在hive的安装目录下执行脚本,或者在shell脚本代码中配置定向到hive的安装路径下执行,在上边代码前面加上“source /etc/profile”和“locate /bin/hive”,如下:

source /etc/profile
locate /bin/hive

target_date=`date '+%Y-%m-%d' -d "+2 days"`
inc_mon=`date '+%Y%m' -d "0 days $target_date"`
inc_day=`date '+%d' -d "0 days $target_date"`

hive -e "use ODS_XXXXX;ALTER TABLE XXXXXXX ADD IF NOT EXISTS PARTITION (inc_mon='${inc_mon}',inc_day='${inc_day}') LOCATION '/db/ODS_XXXXXX/XXXXXX/${inc_mon}/${inc_day}'"

这样每次如果需要在shell脚本中写“hive -e”等hive命令,需要在前面加上“locate /bin/hive”,这样代码执行成功。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

bash: hadoop:command not found

在执行 [user@hadoopName ~]hadoop namenode -format 提示 -bash:hadoop: No such file or directory 这种...

bash:haoop:command not found

今天配置完 Hadoop 运行Hadoop命令 hadoop fs -ls 时出现: bash:haoop:command not found 后来经过检查,原来是配置文件中 HADOOP_HOME ...

hive安装配置

hive安装配置---coco # by coco # 2014-07-25 5. hive的安装配置 下载:apache-hive-0.13.1-bin.tar.gz [root@...

运行crontab时出现hive:command not found及找不到hadoop_home问题处理

 如果确认已经在脚本中用了绝对路径,这就可能是crontab的环境变量和自己运行时的环境变量不同导致。所以, 在shell脚本中加入 1)source /etc/profile 2)然后用...

Hive 脚本执行

继上篇DDL中load的数据继续进行脚本操作。 hive执行脚本hive -e “sql语句” 会将查询的结果打印在控制台上。 hive -e “sql语句” >> xxx 会将查询的结果重定向到...

Hive DDL(Data Definition Language)之创建表

具体还需要看官网文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL创建表CREATE [TEMPORARY] ...

初学者怎样才能更轻松的进入嵌入式行业(基于ARM核开发板)

今天写写怎样更快入进入嵌入式行业,以后嵌入式涉及的领域和应用越来越多也是越来越广,当然技术也是更新换代很快,要求越来越多,越来越严,学习的人也是越来越多。不过对于一些在嵌入式这一行干了很多年的大虾们来...

运行crontab时出现hive:command not found和no module named argparse found解决办法

运行crontab时出现hive:command not found和no module named argparse found解决办法

crontab提示command not found的解决方法

近期要用crontab执行一些命令:定期让系统时间和硬件时间同步。因为我总是发现我的linux服务器时间会变慢,最后想到同步这个办法。       一开始,我将命令:*/1 * * * * roo...

backup.sh: line 1: date+%Y%m%d%H: command not found

[root@mmdb script]# sh backup.sh backup.sh: line 1: date+%Y%m%d%H: command not found
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)