3

Google dataproc を使用して Spark ジョブを送信し、Google Cloud Composer を使用してそれらをスケジュールしています。残念ながら、私は困難に直面しています。

.confSpark ジョブに引数を渡すために、ファイル (タイプセーフな構成ファイル) に依存しています。

気流データプロシージャに次の 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)

しかし、これは機能しておらず、いくつかのエラーが発生しています。

誰でもこれで私を助けることができますか?基本的に、ファイルをオーバーライドして、引数として my に渡す
ことができるようにしたいと考えています。 私もやってみました.confDataProcSparkOperator

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

.confしかし、これは引数に記載されているファイルを考慮していませんでした。

4

1 に答える 1

2

development.conftl;drファイルを に渡す辞書に変換する必要がありますdataproc_spark_properties

完全な説明:

プロパティを設定するには、クラスター レベルとジョブ レベルの 2 つの主な方法があります。

1) ジョブレベル

ジョブ レベルで設定しようとしているようです: DataProcSparkOperator(dataproc_spark_properties={'foo': 'bar', 'foo2': 'bar2'})gcloud dataproc jobs submit spark --properties foo=bar,foo2=bar2それはorと同じspark-submit --conf foo=bar --conf foo2=bar2です。ジョブごとのプロパティのドキュメントは次のとおりです。

への引数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

重要なことに、クラスター レベルでプロパティを指定する場合は、プロパティを追加する構成ファイルをプレフィックスとして付ける必要があります。を使用する場合spark:foo=bar、それは に追加することを意味foo=bar/etc/spark/conf/spark-defaults.confます。などにも同様の接頭辞がありますyarn-site.xml

3).confクラスター レベルでファイルを使用する

.confファイルをディクショナリに変換したくない場合は 、クラスターの作成時に初期化アクション/etc/spark/conf/spark-defaults.confを使用してファイルを追加することもできます。

例(これはテストされていません):

#!/bin/bash
set -euxo pipefail

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

必要な構成のみをオーバーライドするために、既存の構成ファイルを置き換えるのではなく、追加することに注意してください。

于 2018-09-16T21:15:58.270 に答える