回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是Python和flow的相对新用户,在让<code>spark-submit</code>在flow任务中运行非常困难。我的目标是让下面的DAG任务成功运行</p>
<pre><code>from datetime import datetime, timedelta
from airflow import DAG
from airflow.contrib.operators.spark_submit_operator import SparkSubmitOperator
from airflow.operators.bash_operator import BashOperator
default_args = {
'owner': 'matthew',
'start_date': datetime(2019, 7, 8)
}
dag = DAG('CustomCreate_test2',
default_args=default_args,
schedule_interval=timedelta(days=1))
t3 = BashOperator(
task_id='run_test',
bash_command='spark-submit --class CLASSPATH.CustomCreate ~/IdeaProjects/custom-create-job/build/libs/custom-create.jar',
dag=dag
)
</code></pre>
<p>我知道问题出在气流而不是bash,因为当我在终端中运行<code>spark-submit --class CLASSPATH.CustomCreate ~/IdeaProjects/custom-create-job/build/libs/custom-create.jar</code>命令时,它会成功运行。在</p>
<p>我从气流记录中得到以下错误</p>
^{pr2}$
<p>我也尝试过使用<code>SparkSubmitOperator(...)</code>,但是没有成功地使用它,我只得到了如下错误日志</p>
<pre><code>...
[2019-08-28 15:54:49,749] {logging_mixin.py:95} INFO - [[34m2019-08-28 15:54:49,749[0m] {[34mspark_submit_hook.py:[0m427} INFO[0m - at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)[0m
[2019-08-28 15:54:49,803] {taskinstance.py:1047} ERROR - Cannot execute: ['spark-submit', '--master', 'yarn', '--num-executors', '2', '--total-executor-cores', '1', '--executor-cores', '1', '--executor-memory', '2g', '--driver-memory', '1g', '--name', 'CustomCreate', '--class', 'CLASSPATH.CustomCreate', '--verbose', '--queue', 'root.default', '--deploy-mode', 'cluster', '~/IdeaProjects/custom-create-job/build/libs/custom-create.jar']. Error code is: 1.
...
</code></pre>
<p>在我可以在<code>BashOperator(...)</code>任务中运行<code>spark-submit ...</code>命令之前,我需要使用<code>SparkSubmitOperator(...)</code>做些什么吗?在</p>
<p>有没有办法直接从<code>SparkSubmitOperator(...)</code>任务运行我的<code>spark-submit</code>命令?在</p>
<p>在Airflow的<em>管理->连接</em>页面中,我有什么要做的吗?在</p>
<p>在Airflow的<em>管理->用户</em>页面中有什么必须设置的吗?
有什么必须设置为允许气流运行spark或运行由特定用户创建的jar文件吗?如果是,什么/如何?在</p>