#以前qiitaに投稿した記事を一部更新して再投稿しています
Apache SparkのWebUIはアプリケーションの開発時のデバッグにとても役立ちます。
しかし、本番運用に入ってしまうと、簡単にはWeb UIにアクセスできなかったり、問題が発生してから時間が過ぎてしまい見たかった情報が流れてしまうこともあります。
もし本番環境でSparkのログが取得でき、このログを持って帰ることができるなら、検証環境のSpark History ServerのWeb UIで見ることができます。本番環境のイベントログを手元の環境で見ることができるのはかなり便利ですね。
検証環境
- Cloudera Quickstart VM 5.8 で確認
- Spark 1.6
- CDH 5.8
- Cloudera Manager 5.8
ログを取得
Spark Piを実行してイベントログを取る
Sparkを実行するのはYARNの環境です。今回はSparkのexample、円周率を計算します。
spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --driver-memory 512m --executor-memory 512m --executor-cores 1 /usr/lib/spark/lib/spark-examples.jar
Cloudera ManagerでYARNのアプリケーションを表示
Cloudera Managerでは、クラスタで実行されたYARN(MapReduceやSpark)やImpalaアプリケーションの履歴が一覧ができます。以下のスクリーショットは、先ほどYARNで実行したアプリケーションが表示されています。
Sparkのイベントデータはどこに保存される?
Hueのファイルブラウザを使用して、HDFSの/user/spark/applicationHistory を見てみましょう。
このディレクトリにあるファイルがイベントの履歴データです。まだファイルが一つしかアリアm線が、先ほどCloudera Managerの画面に表示されていたアプリケーションのIDとファイル名が一致しているファイルが該当するログファイルです。このファイルをHueなどでダウンロードして持ち帰り、手元にある開発環境の /user/spark/applicationHistory にアップロードすれば終わりです。
ローカル環境で表示する
ダウンロードしたイベントログをSparkの検証環境にアップロード
Hueのファイルブラウザや、hdfs dfsコマンドを使ってアップロードしましょう。
[kawasaki@localhost Desktop]$ hdfs dfs -put application_1480697310935_0001_1 /user/spark/applicationHistory
Spark History ServerのWebUIで表示
Spark History ServerのWeb UIにアクセスして表示できます。!Enjoy!
参考情報
If Spark is run on Mesos or YARN, it is still possible to reconstruct the UI of a finished application through Spark’s history server, provided that the application’s event logs exist. You can start the history server by executing:

コメント