crontab调用sqoop失败

背景:由于业务需求,数据需要每天从mysql----->hive同步,考虑到资源占用情况,暂定凌晨业务空闲时执行定时任务

方法:1>通过sqoop创建增量写入数据的job,每晚定时执行【pass掉了,因为hive中数据文件格式为压缩snappy类型,presto连接后查询报错】

           2>通过kettle先查讯hive数据表中max(id)值,查询mysql中hive的max(id)以后的值,从mysql插入到hive中【暂时pass掉,由于是一条一条写入而不是批量,太慢了】

           3>先删除hive库中的表,然后让sqoop查询mysql数据全量写入hive  【备选方案】

问题:crontab中写入定时任务,调用shell脚本执行sqoop命令,报错如下:

原因:由于sqoop不会去读取root环境变量,导致没有找到jdk环境,执行失败

解决方法:执行sqoop命令前,先source  /etc/profile,导入环境变量

解决结果:可行

原文地址:https://www.cnblogs.com/byfboke/p/14788546.html