hadoop-logo
ようこそ Tech blogへ!
「これからHadoopを勉強しよう」という方はまず下記のページから

サイトの移行に伴って画像が表示されないなどの不具合が生じています

Sparkで取得したログを別のマシンのWeb UIで見る

#以前qiitaに投稿した記事を一部更新して再投稿しています
Apache SparkのWebUIはアプリケーションの開発時のデバッグにとても役立ちます。
sparkhistory7.png
しかし、本番運用に入ってしまうと、簡単には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で実行したアプリケーションが表示されています。
sparkpi

Sparkのイベントデータはどこに保存される?

Hueのファイルブラウザを使用して、HDFSの/user/spark/applicationHistory を見てみましょう。
hue_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!
sparkhistory1sparkhistory2

参考情報

Monitoring and Instrumentation - Spark 1.6.2 Documentation
Monitoring, metrics, and instrumentation guide for Spark 1.6.2

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:

Sparkジョブの履歴をSpark History Serverに取り込む - Qiita
#目的 Apache SparkのWebUIはアプリケーションのデバッグにとても役立ちます。 デバッグのため、このWeb UIを使って本番環境で取得したログを検証環境で確認したいことがあります。 取得したイベントのログをSpark...

コメント