gpt4 book ai didi

apache-spark - 将类型安全配置 conf 文件传递​​给 DataProcSparkOperator

转载 作者:行者123 更新时间:2023-12-04 15:54:28 24 4
gpt4 key购买 nike

我正在使用 Google dataproc 提交 spark 作业,并使用 google cloud composer 来安排它们。不幸的是,我遇到了困难。

我依靠 .conf 文件(类型安全配置文件)将参数传递给我的 spark 作业。

我正在为 Airflow 数据处理使用以下 python 代码:

t3 = dataproc_operator.DataProcSparkOperator(
task_id ='execute_spark_job_cluster_test',
dataproc_spark_jars='gs://snapshots/jars/pubsub-assembly-0.1.14-SNAPSHOT.jar',
cluster_name='cluster',
main_class = 'com.organ.ingestion.Main',
project_id='project',
dataproc_spark_properties={'spark.driver.extraJavaOptions':'gs://file-dev/fileConf/development.conf'},
scopes='https://www.googleapis.com/auth/cloud-platform', dag=dag)

但这不起作用,我收到了一些错误。

谁能帮我解决这个问题?
基本上我希望能够覆盖 .conf 文件并将它们作为参数传递给我的 DataProcSparkOperator
我也试过了

arguments=`'gs://file-dev/fileConf/development.conf'`: 

但这并没有考虑参数中提到的 .conf 文件。

最佳答案

tl;dr 您需要将 development.conf 文件转换为字典以传递给 dataproc_spark_properties

完整解释:

设置属性的方法主要有两种——集群级别和作业级别。

1)职位级别

看起来您正在尝试在作业级别设置它们:DataProcSparkOperator(dataproc_spark_properties={'foo': 'bar', 'foo2': 'bar2'})。这与 gcloud dataproc jobs submit spark --properties foo=bar,foo2=bar2spark-submit --conf foo=bar --conf foo2=bar2 相同。这是 documentation对于每个作业属性。

spark.driver.extraJavaOptions 的参数应该是传递给 java 的命令行参数。例如,-verbose:gc

2)集群级别

您还可以使用 DataprocClusterCreateOperator(properties={'spark:foo': 'bar', 'spark:foo2': 'bar2'}) 在集群级别设置属性,这是与 gcloud dataproc clusters create --properties spark:foo=bar,spark:foo2=bar2 ( documentation) 相同。同样,您需要使用字典。

重要的是,如果您在集群级别指定属性,则需要在它们前面加上要将属性添加到哪个配置文件的前缀。如果您使用 spark:foo=bar,这意味着将 foo=bar 添加到 /etc/spark/conf/spark-defaults.confyarn-site.xml等也有类似的前缀

3) 在集群级别使用您的 .conf 文件

如果你不想把你的.conf文件变成一个字典,你也可以把它附加到/etc/spark/conf/spark-defaults.conf 使用 initialization action当您创建集群时。

例如(这是未经测试的):

#!/bin/bash
set -euxo pipefail

gsutil cp gs://path/to/my.conf .
cat my.conf >> /etc/spark/conf/spark-defaults.conf

请注意,您想要附加而不是替换现有的配置文件,这样您就可以只覆盖您需要的配置。

关于apache-spark - 将类型安全配置 conf 文件传递​​给 DataProcSparkOperator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52336677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com