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,导入环境变量
解决结果:可行