【发布时间】:2019-08-08 11:58:04
【问题描述】:
通过 Oozie 工作流程,我提交了一个 shell 脚本,其中包含 spark-submit 命令。
我通过 oozie 控制台在 hdfs /user/admin/first.sh 中上传了 shell 脚本。当我运行脚本直到 spark-submit 命令它运行良好。当它尝试运行 spark-submit cmd 时,它失败了。原因 spark-submit 在本地文件系统中,但我的脚本在 hadoop 文件系统中以 hadoop 管理员用户运行。任何解决这个问题的方法。如何在 hadoop 文件系统中从 hadoop 用户运行本地文件系统(spark-submit)命令,或者我可以在 Oozi 的帮助下将脚本从 hadoop 文件系统复制到本地文件系统。
/usr/lib/spark/bin/spark-submit --driver-java-options "-Dcurrent.job.id=$1 -Dexecutive.transform.dumpname=$dump_name -Dexecutive.transform.source=$SOURCE -Dexecutive.transform.jobid=$1 -Dexecutive.transform.run=$run_id -Dlogging.job.type=$JOB_TYPE -Dlogging.module.name=$MODULE_NAME" --conf spark.executor.extraJavaOptions="-Dcurrent.job.id=$1 -Dexecutive.transform.dumpname=$dump_name -Dexecutive.transform.source=$SOURCE -Dexecutive.transform.jobid=$1 -Dexecutive.transform.run=$run_id -Dlogging.job.type=$JOB_TYPE -Dlogging.module.name=$MODULE_NAME" --master yarn-cluster --deploy-mode cluster --conf spark.yarn.user.classpath.first=true --class com.insideview.transform.ExecutiveTransformerSparkPipelineJob --jars $5/deploy/etl/dp-properties/DPProperties-$dp_version.jar,$5/deploy/etl/contact-transform/jars/ExecNameTransformer-$dp_version.jar,$5/deploy/hbase/lib/hbase-client.jar,$5/deploy/hbase/lib/hbase-common.jar,$5/deploy/hbase/lib/hbase-server.jar,$5/deploy/hbase/lib/protobuf-java-2.5.0.jar,$5/deploy/hbase/lib/hbase-protocol.jar,$5/deploy/hbase/lib/htrace-core-3.1.0-incubating.jar,$5/deploy/etl/contact-transform/jars/
./first.sh: line 64: /usr/lib/spark/bin/spark-submit: No such file or directory
我有几个数据库步骤,例如在 spark-submit 之前运行良好的 select 语句。当它进入 spark-submt 步骤时,由于本地文件系统,它无法运行。
【问题讨论】:
标签: shell hadoop oozie spark-submit oozie-workflow