web-dev-qa-db-ja.com

EMRでカスタム環境変数を設定してsparkアプリケーションで使用できるようにする方法

sparkアプリケーションを実行するときに使用できるように、EMRでカスタム環境変数を設定する必要があります。

私はこれを追加しようとしました:

                   ...
                   --configurations '[                                    
                                      {
                                      "Classification": "spark-env",
                                      "Configurations": [
                                        {
                                        "Classification": "export",
                                        "Configurations": [],
                                        "Properties": { "SOME-ENV-VAR": "qa1" }
                                        }
                                      ],
                                      "Properties": {}
                                      }
                                      ]'
                   ...

また、「spark-envをhadoop-envに置き換えようとしましたが、何も機能していないようです。

Awsフォーラムから this 回答があります。しかし、私はそれを適用する方法を理解することはできません。私はEMR5.3.1で実行していて、CLIから事前設定されたステップで起動します:aws emr create-cluster...

11

以下のJSONのようなカスタム構成をファイルに追加します。たとえば、custom_config.json

[   
  {
   "Classification": "spark-env",
   "Properties": {},
   "Configurations": [
       {
         "Classification": "export",
         "Properties": {
             "VARIABLE_NAME": VARIABLE_VALUE,
         }
       }
   ]
 }
]

そして、emrクラスターを作成する際に、ファイル参照を--configurationsオプションに渡します。

aws emr create-cluster --configurations file://custom_config.json --other-options...
5
franklinsijo

私の場合、spark-envyarn-envに置き換えると問題が修正されました。

2
Przemek