私の現在のセットアップ:
- HDFS と YARN を使用した Spark EC2 クラスター
- ジュプターハブ(0.7.0)
- python27 を使用した PySpark カーネル
この質問に使用している非常に単純なコード:
rdd = sc.parallelize([1, 2])
rdd.collect()
Spark スタンドアロンで期待どおりに動作する PySpark カーネルには、カーネル json ファイルに次の環境変数があります。
"PYSPARK_SUBMIT_ARGS": "--master spark://<spark_master>:7077 pyspark-shell"
ただし、yarn-client モードで実行しようとすると、JupyerHub ログからのログ出力は次のようになりますが、永遠に動かなくなります。
16/12/12 16:45:21 WARN YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
16/12/12 16:45:36 WARN YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
16/12/12 16:45:51 WARN YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
16/12/12 16:46:06 WARN YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
ここで説明したように、 HADOOP_CONF_DIR 環境を追加しました。変数を Hadoop 構成が存在するディレクトリを指すように変更し、PYSPARK_SUBMIT_ARGS --master
プロパティを「yarn-client」に変更しました。また、この間に他のジョブが実行されておらず、ワーカーが正しく登録されていることも確認できます。
他の人が行ったように、PySpark カーネルを使用して JupyterHub ノートブックを構成して YARN で実行することが可能であるという印象を受けています。