ここでは、MapReduce および Spark ジョブのログを JindoFileSystem (JindoFS) または JindoFS ベースの OssFileSystem に保存する方法について説明します。

概要

E-MapReduce クラスターは、さまざまなニーズに対応するため、従量課金およびサブスクリプションの課金方法をサポートしています。 従量課金クラスターはいつでもリリースすることができます。 Hadoop クラスターは、デフォルトで Hadoop Distributed File System (HDFS) にログを保存します。 従量課金のクラスターがリリースされた場合は、ユーザーはクラスターのジョブログをクエリすることはできません。 この場合、ユーザーはジョブの問題のトラブルシューティングが困難な場合があります。 ここでは、MapReduce および Spark ジョブのログを JindoFS または JindoFS ベースの OssFileSystem に保存して、ジョブの以前のログをクエリできるようにする方法について説明します。

JindoFS、YARN コンテナーログ、および Spark History Server の設定

  • JindoFS の設定

    設定ファイル パラメーター 説明
    bigboot jfs.namespaces JindoFS でサポートされている名前空間。 複数の名前空間は、コンマ (,) で区切ります。 emr-jfs
    jfs.namespaces.emr-jfs.uri emr-jfs 名前空間のストレージバックエンド。 oss://oss-bucket/oss-dir
    jfs.namespaces.test.mode emr-jfs 名前空間のストレージモード。 block
    JindoFS は、ブロックストレージモード (block) とキャッシュモード (cache) をサポートしています。
  • YARN コンテナーログの設定

    設定ファイル パラメーター 説明
    yarn-site yarn.nodemanager.remote-app-log-dir アプリケーションの実行が停止した後に YARN がログを集約して保存するディレクトリ。 YARN のログ集約機能はデフォルトで有効になっています。 jfs://emr-jfs/emr-cluster-log/yarn-apps-logs または oss://${oss-bucket}/emr-cluster-log/yarn-apps-logs
    mapred-site mapreduce.jobhistory.done-dir JobHistory が完了した Hadoop ジョブのログを格納するディレクトリ。 jfs://emr-jfs/emr-cluster-log/jobhistory/done または oss://${oss-bucket}/emr-cluster-log/jobhistory/done
    mapreduce.jobhistory.intermediate-done-dir JobHistory が Hadoop ジョブ用にアーカイブされていないログを格納するディレクトリ。 jfs://emr-jfs/emr-cluster-log/jobhistory/done_intermediate または oss://${oss-bucket}/emr-cluster-log/jobhistory/done_intermediate
  • Spark History Server の設定

    設定ファイル パラメーター 説明
    spark-defaults spark_eventlog_dir Spark History Server が Sparkジョブのログを保存するディレクトリです。 jfs://emr-jfs/emr-cluster-log/spark-history または oss://${oss-bucket}/emr-cluster-log/spark-history

E-MapReduce クラスターの作成

次の図に示すように、E-MapReduce クラスターの作成時にカスタム設定を追加することができます。

config_sel

カスタム設定例

たとえば、JindoFS にログを保存するには、次のカスタム設定を使用して、Object Storage Service (OSS) バケットと関連ディレクトリを置き換えます。

[   
  {
       "ServiceName":"BIGBOOT",
       "FileName":"bigboot",
       "ConfigKey":"jfs.namespaces",
       "ConfigValue":"emr-jfs"
  },
  {
       "ServiceName":"BIGBOOT",
       "FileName":"bigboot",
       "ConfigKey":"jfs.namespaces.emr-jfs.uri",
       "ConfigValue":"oss://oss-bucket/jindoFS"
  },
  {
       "ServiceName":"BIGBOOT",
       "FileName":"bigboot",
       "ConfigKey":"jfs.namespaces.emr-jfs.mode",
       "ConfigValue":"bbb"
  },
  {
       "ServiceName":"YARN",
       "FileName":"mapred-site",
       "ConfigKey":"mapreduce.jobhistory.done-dir",
       "ConfigValue":"jfs://emr-jfs/emr-cluster-log/jobhistory/done"
  },
  {
       "ServiceName":"YARN",
       "FileName":"mapred-site",
       "ConfigKey":"mapreduce.jobhistory.intermediate-done-dir",
       "ConfigValue":"jfs://emr-jfs/emr-cluster-log/jobhistory/done_intermediate"
  },
  {
       "ServiceName":"YARN",
       "FileName":"yarn-site",
       "ConfigKey":"yarn.nodemanager.remote-app-log-dir",
       "ConfigValue":"jfs://emr-jfs/emr-cluster-log/yarn-apps-logs"
  }, 
  {
       "ServiceName":"SPARK",
       "FileName":"spark-defaults",
       "ConfigKey":"spark_eventlog_dir",
       "ConfigValue":"jfs://emr-jfs/emr-cluster-log/spark-history"
  }
]

たとえば、JindoFS ベースの OssFileSystem にログを保存するには、次のカスタム設定を使用して、OSS バケットと関連ディレクトリを置き換えます。

[   
  {
       "ServiceName":"YARN",
       "FileName":"mapred-site",
       "ConfigKey":"mapreduce.jobhistory.done-dir",
       "ConfigValue":"oss://oss_bucket/emr-cluster-log/jobhistory/done"
  },
  {
       "ServiceName":"YARN",
       "FileName":"mapred-site",
       "ConfigKey":"mapreduce.jobhistory.intermediate-done-dir",
       "ConfigValue":"oss://oss_bucket/emr-cluster-log/jobhistory/done_intermediate"
  },
  {
       "ServiceName":"YARN",
       "FileName":"yarn-site",
       "ConfigKey":"yarn.nodemanager.remote-app-log-dir",
       "ConfigValue":"oss://oss_bucket/emr-cluster-log/yarn-apps-logs"
  }, 
  {
       "ServiceName":"SPARK",
       "FileName":"spark-defaults", 
       "ConfigKey":"spark_eventlog_dir",
       "ConfigValue":"oss://oss_bucket/emr-cluster-log/spark-history"
   }
]