Spark履歴サーバーの構成

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

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

手順

Spark履歴サーバーを有効にするには:
  1. DSEFSファイル・システムにイベント・ログ用のディレクトリーを作成します。
    dse fs 'mkdir -p /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 
    # Optional property that changes permissions set to event log files 
    # spark.eventLog.permissions=777
  3. クラスター内のいずれかのノードでSpark履歴サーバーを起動します。

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

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

    spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.username=role name
    spark.hadoop.com.datastax.bdp.fs.client.authentication.basic.password=password

    spark-defaults.xmlにイベント・ログの場所を設定した場合は、プロパティ・ファイルにspark.history.fs.logDirectoryプロパティを設定します。

    spark.history.fs.logDirectory=dsefs:///spark/events
    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日間が経過したログは削除されます。