1. 手动执行任务,是在当前shell下,程序当然能找到环境变量
2. 系统自动执行任务调度时,不会加载任何环境变量,因此,需在crontab文件中指定任务运行所需的所有环境变量,系统执行任务调度时就没问题。
例如:
30 08 * * * /test/spark_submit.sh sale.py
报错:
"cx_Oracle.DatabaseError": Error while trying to retrieve text for error ORA-01804
解决:
在运行的spark_submit.sh文件中,设置必要的环境变量,因为用到了Oracle,要告诉shell,Oracle所在目录
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
PATH=$ORACLE_HOME/bin:$PATH