Spark履歴サーバーの構成

イベント・ロギングが有効な状態で実行されたSparkジョブからイベント・ログを読み込みます。

Spark履歴サーバーは、イベント・ロギングが有効な状態で実行されたSparkジョブからイベント・ログを読み込む方法を提供します。Spark履歴サーバーは、Sparkマスターが履歴ユーザー・インターフェイスを構築しようとする前にファイルがフラッシュされなかった場合にのみ動作します。

手順

Spark履歴サーバーを有効にするには:

  1. DSEFSファイル・システムにイベント・ログ用のディレクトリーを作成します。
    $ dse hadoop fs -mkdir /spark $ dse hadoop fs -mkdir /spark/events
  2. クラスター内のノードごとに、spark-defaults.confファイルを編集してイベント・ロギングを有効にし、イベント・ログ用のディレクトリーを指定します。
    #Turns on logging for applications submitted from this machine 
    spark.eventLog.dir dsefs:///spark/events 
    spark.eventLog.enabled true 
    #Sets the logging directory for the history server 
    spark.history.fs.logDirectory dsefs:///spark/events 
  3. クラスター内のいずれかのノードでSpark履歴サーバーを起動します。

    Spark履歴サーバーは、Sparkクラスター内のすべてのノードからのロギング・データを表示するフロントエンド・アプリケーションです。このサーバーは、クラスター内のどのノードからも起動できます。

    認証を有効にしたら、プロパティ・ファイルで認証方法と認証情報を設定して、dseコマンドに渡します。たとえば、基本認証の場合は、以下のように入力します。

    spark.hadoop.com.datastax.bdp.fs.client.authentication=basic
    spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.username=role name
    spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.password=password
    dse spark-history-server start

    セキュリティが有効な状態で、以下のように入力します。

    dse spark-history-server start --properties-file properties file

    履歴サーバーが起動し、ブラウザーを開いてhttp://node hostname:18080に移動することで表示できます。

    注: SparkマスターWeb UIには履歴ログが表示されません。この既知の問題を回避するには、ポート18080から履歴にアクセスします。
  4. イベント・ロギングを有効にすると、すべてのログに対するデフォルトの動作は保存されますが、経時的にストレージが増大する原因になります。自動クリーンアップを有効にするには、spark-defaults.confを編集して、以下のオプションを編集します。
    spark.history.fs.cleaner.enabled true 
    spark.history.fs.cleaner.interval 1d
    spark.history.fs.cleaner.maxAge 7d

    これらの設定で、自動クリーンアップが有効になり、クリーンアップが毎日実行されて、7日間が経過したログは削除されます。