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”,这样代码执行成功。

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

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

运行crontab时出现hive:command not found和no module named argparse found解决办法
  • qq_17246605
  • qq_17246605
  • 2015年05月19日 15:20
  • 2722

hive安装配置

hive安装配置---coco # by coco # 2014-07-25 5. hive的安装配置 下载:apache-hive-0.13.1-bin.tar.gz [root@...
  • wulantian
  • wulantian
  • 2014年07月25日 11:19
  • 35819

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

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

两个Hive无法启动问题的解决

最近在一台旧linux服务器上部署hadoop+hive的测试环境。 Hadoop版本:0.20.2 Hive版本:0.6.0   问题一,Bash版本不对 Hadoop使用假分布式启动,很...
  • ningguixin
  • ningguixin
  • 2012年08月04日 21:54
  • 4749

shell 脚本 “bc: command not found ” 解决

最近调试了一个脚本,在一台环境里,正常运行,在另外一台服务器环境里,就报错“ bc: command not found 查找发现问题如下: linux字符界面下也是有计算器的,那就是bc! ...
  • wulantian
  • wulantian
  • 2013年09月24日 15:19
  • 22306

hive 数据源 使用mysql; hive 启动报错; 加载数据 建表等基本命令

hive 数据源 使用mysql; hive 启动报错; 加载数据 建表等基本命令
  • hzdxw
  • hzdxw
  • 2016年07月20日 00:40
  • 1057

Hive命令的3种调用方式

方式1:hive –f  /root/shell/hive-script.sql(适合多语句) hive-script.sql类似于script一样,直接写查询命令就行 例如: ...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2015年12月11日 11:28
  • 5214

Linux找不到命令解决方法

1、Linux首先会找/etc/profile 这个配置文件里的PATH变量,遍历这个变量里配置的多个路径,查看命令是否存在。 2、如果 /etc/profile 里的PATH找不到有这个命令(或者...
  • C8232
  • C8232
  • 2016年11月17日 16:12
  • 1221

bash:haoop:command not found

今天配置完 Hadoop 运行Hadoop命令 hadoop fs -ls 时出现: bash:haoop:command not found 后来经过检查,原来是配置文件中 HADOOP_HOME ...
  • xuanjiewu
  • xuanjiewu
  • 2015年05月29日 17:21
  • 11477

bash: hadoop: command not found

输入[root@localhost bin]# hadoop fs -ls  / 报bash: hadoop: command not found 这个错误 需要将hadoop/bin路径加入PAT...
  • tucailing
  • tucailing
  • 2013年06月24日 14:30
  • 6881
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hive: command not found错误解决
举报原因:
原因补充:

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