すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:YARN MapReduce および Spark ジョブのログの保存

最終更新日:Jan 11, 2025

このトピックでは、MapReduce および Spark ジョブのログを JindoFileSystem(JindoFS)または Object Storage Service(OSS)に保存する方法について説明します。

概要

E-MapReduce(EMR)クラスターは、さまざまなニーズに合わせて従量課金制とサブスクリプション課金方式をサポートしています。従量課金制クラスターはいつでもリリースできます。Hadoop クラスターは、デフォルトで Hadoop Distributed File System(HDFS)にログを保存します。従量課金制クラスターをリリースすると、クラスターのジョブログを照会できなくなります。この場合、ジョブの問題のトラブルシューティングが困難になる可能性があります。このトピックでは、ジョブの以前のログを照会できるように、MapReduce および Spark ジョブのログを JindoFS または OSS に保存する方法について説明します。

JindoFS、YARN コンテナログ、および Spark History Server の構成

  • JindoFS の構成

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

    構成ファイル パラメーター説明
    yarn-siteyarn.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-sitemapreduce.jobhistory.done-dirJobHistory が完了した Hadoop ジョブのログを保存するディレクトリ。jfs://emr-jfs/emr-cluster-log/jobhistory/done または oss://${oss-bucket}/emr-cluster-log/jobhistory/done
    mapreduce.jobhistory.intermediate-done-dirJobHistory が Hadoop ジョブ用にアーカイブされていないログを保存するディレクトリ。jfs://emr-jfs/emr-cluster-log/jobhistory/done_intermediate または oss://${oss-bucket}/emr-cluster-log/jobhistory/done_intermediate
  • Spark History Server の構成

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

クラスターの作成

次の図に示すように、EMR クラスターの作成時にカスタムソフトウェア構成を追加できます。

config_sel

カスタム構成の例

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

[ 
  {
       "ServiceName":"BIGBOOT",
   "FileName":"bigboot",
   "ConfigKey":"jfs.namespaces",
   "ConfigValue":"emr-jfs"
 },
 {
       "ServiceName":"BIGBOOT",
   "FileName":"bigboot",
   "ConfigKey":"jfs.namespaces.emr-jfs.oss.uri",
   "ConfigValue":"oss://oss-bucket/jindoFS"
  },
 {
       "ServiceName":"BIGBOOT",
   "FileName":"bigboot",
   "ConfigKey":"jfs.namespaces.emr-jfs.mode",
   "ConfigValue":"block"
 },
 {
      "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"
 }
]

たとえば、ログを OSS に保存するには、次のカスタム構成を使用し、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"
 }
]