Google Cloud Logging の Dataproc Spark ジョブからの出力とともに、Dataproc クラスタからSparkジョブ ドライバの出力とHadoop ジョブにアクセスするための回答があることを理解しています。これらに感謝します。
ただし、インタラクティブやセッションなどの不完全なSpark アプリケーションのログを表示することにも関心があります。pyspark-shell
spark-shell
- 同じ Web インターフェイスを使用して、場合によっては
- 生のセッション出力 (ローカル fs または hdfs のログ ファイル?) へのアクセス
Spark シェル セッション中に、セッションを不完全なアプリケーションとして表示することはできますが、REPL でコマンドを実行している場合、UI はJobs、Stages、およびTasksタブにそのような情報を提供しません。これは次のように簡単に複製できます。
# Launch Dataproc cluster
>> gcloud beta dataproc clusters create $DATAPROC_CLUSTER_NAME
# SSH to master node:
>> gcloud compute ssh "root@$DATAPROC_CLUSTER_NAME-m"
# Launch a Spark shell (e.g., Python)
>> pyspark
(上記のように) Spark セッションを不完全なアプリケーションとして見ることができ、次のような基本的な Spark ジョブを (collect
アクションを使用して) 実行できます。
>>> rdd = sc.parallelize([1, 2, 3, 4, 5, 6])
>>> rdd2 = rdd.map(lambda x: x + 1)
>>> rdd2.collect()
[2, 3, 4, 5, 6, 7]
>>> rdd2.persist()
PythonRDD[1] at collect at <stdin>:1
ただし、これにより、Jobs、Stages、またはStorageタブのいずれにも情報が表示されません: Spark ジョブ履歴 UI 画面グラブ (空白) を参照してください。
ただし、Dataproc API を介してジョブを送信する場合、これらのタブには予想されるすべてのジョブ履歴が表示されます。
Spark シェル セッションからそのような出力/ジョブ履歴にアクセスできる場所に関するヒントはありますか? よろしくお願いします。:)