crontab定时hadoop任务没有执行

最近公司要从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

你可能感兴趣的:(mapreduce,hadoop)