【问题标题】:To schedule a hive query on Crontab在 Crontab 上安排 hive 查询
【发布时间】:2015-05-29 05:19:24
【问题描述】:

谁能帮我在 Crontab 中安排一个作业,该作业将在特定时间执行一个简单的 Hive 查询并在文本/日志文件中为我提供输出。

我创建了一个批处理脚本来执行选择查询,但是在 Crontab 中执行它时出现错误(“未找到 Hive 命令”)。然而,相同的脚本通过 shell 运行良好。下面是我的脚本:

ip.sh
#!/bin/bash
echo "Starting of Job"
cd /home/hadoop/work/hive/bin
hive -e 'select * from mytest.empl'
echo "Script ends here"

Crontab: 10 * * * * /home/hadoop/work/ip.sh >> /home/hadoop/work/quryout.log 2>&1

执行 Crontab 后,我在日志中收到以下消息:

输出(Queryout.log): 开始工作 在第 4 行的 ip.sh 中找不到 hive 命令 脚本到此结束

【问题讨论】:

  • 请更好地格式化您的问题,在`字符之间使用文本来内联代码

标签: hadoop hive hiveql


【解决方案1】:

在您的/home/hadoop/.bashrc 中添加这些行:

export HIVE_HOME=/home/hadoop/work/hive
export PATH=$PATH:$HIVE_HOME/bin

现在,像这样更改您的脚本:

#!/bin/bash
echo "Starting of Job"
hive -e 'select * from mytest.empl'
echo "Script ends here"

【讨论】:

  • 谢谢拉杰什。添加环境变量后,它工作正常。
  • 如果对您有帮助,请将其标记为答案。
【解决方案2】:

在 shell 脚本中试试这个

/home/hadoop/work/hive/bin/hive -e 'select * from mytest.empl'

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    相关资源
    最近更新 更多