ここでは、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 クラスターの作成時にカスタム設定を追加することができます。
カスタム設定例
たとえば、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"
}
]