您的位置:首页 > 运维架构

crontab定时hadoop任务没有执行

2017-06-26 10:10 99 查看
最近公司要从sqlserver数据库数据大约100G导入到hdfs中,由于数据库在同事的服务器中,为了不影响同事工作,计划晚上自动执行。服务器的定时脚本的时候发现了定时脚本并没有被执行,但是定时比如创建文件夹却可以执行,并且执行了下发现脚本的逻辑是没有问题的,而且直接执行是没有问题的,又去/etc/crontab文件里去看了下
原来是crontab中的环境变量不一样,需要在定时脚本前面加上环境变量。

1:首先在本地执行
echo $PATH

2: 然后将结果写在定时脚本中,

如下: 

vim joe.sh

#!/bin/sh

PATH=/mnt/modules/hive/bin:/mnt/modules/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin:/mnt/modules/spark-2.1.0-bin-hadoop2.4/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/mnt/modules/jdk1.7.0_67/bin:/mnt/modules/scala-2.10.4/bin:/mnt/modules/apache-maven-3.0.5/bin:/mnt/modules/findbugs-1.3.9/bin:/mnt/modules/jdk1.7.0_67/bin:/mnt/modules/hadoop-2.5.2/bin:/mnt/modules/hadoop-2.5.2/sbin:/root/bin/
 Fei joe 

export $PATH

sqoop import --connect 'jdbc:sqlserver://********;username=fei_joe;password=*****;database=qiaofei' --table=**** --target-dir /data2 -m 1

再次定时,成功执行
点击进入

总结:调用系统的参数或者是使用系统环境变量下的文件最好要添加上系统环境变量。
bonjour je suis fei joe
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: