先描述一下场景,公司使用亚马逊EMR集群执行spark任务,每天执行,所以写了个python脚本。定时启动emr集群并发送任务,起线程检测每个emr集群工作状态,工作结束后关闭emr集群。python脚本工作无异常,但是通过crontab调用时会不停的报无法获取授权错误,这里是将任务注册在/etc/crontab中。
度娘了很多种解决方法,都没起作用,最后在亚马逊论坛中找到一个相似的情况,在试过评论中所有发法后,解决。----将任务注册到指定用户的crontab中
crontab -e
问题完美解决,我接触linux时间并不太长,根据我的理解是指定用户crontab时不是nologin状态,会用用户的身份去执行,记录一下,希望能帮助到相似情况的朋友。
PS:我linux机器环境相对较乱,引发问题的原因可能有很多,并不一定是最好的解决方法,等我找到具体的原因后再来更新。