本文为您介绍如何将MapReduce和Spark作业日志配置到JindoFS或OSS上。
背景信息
E-MapReduce集群支持按量计费以及包年包月的付费方式,满足不同用户的使用需求。对于按量计费的集群随时会被释放,而Hadoop默认会把日志存储在HDFS上,当集群释放以后,按量计费的用户就无法查询作业的日志了,因此这也给按量计费用户排查作业问题带来了困难。因此,您可以将MapReduce和Spark作业日志配置到JindoFS或OSS上,待重新创建集群后,可以继续查询之前作业相关的日志。
JindoFS、YARN Container日志和Spark HistoryServer配置
- JindoFS配置
配置文件 参数 描述 示例 bigboot jfs.namespaces 表示当前JindoFS支持的命名空间,多个命名空间时以逗号隔开。 emr-jfs jfs.namespaces.emr-jfs.oss.uri 表示emr-jfs命名空间的后端存储。 oss://oss-bucket/oss-dir 说明 oss-bucket为您Bucket的名称。jfs.namespaces.test.mode 表示emr-jfs命名空间为块存储模式。 block 说明 JindoFS支持block和cache两种存储模式。 - YARN Container日志配置
配置文件 参数 描述 示例 yarn-site yarn.nodemanager.remote-app-log-dir 当应用程序运行结束后,日志聚合的存储位置,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 HistoryServer配置
配置文件 参数 描述 示例 spark-defaults spark_eventlog_dir 存放Spark作业历史的目录。 - jfs://emr-jfs/emr-cluster-log/spark-history
- oss://${oss-bucket}/emr-cluster-log/spark-history
创建集群
在创建集群时,添加软件自定义配置,创建集群详情请参见创建集群。
说明 本文以SmartData 3.6.0为例。如果是SmartData 2.2.3及之前版本,需要修改
ServiceName
为BIGBOOT
,FileName
为bigboot
;如果是SmartData 2.2.3到SmartData 2.7.3版本(包括SmartData 2.7.3),需要修改ServiceName
为SMARTDATA
,FileName
为bigboot
;如果是SmartData 2.7.3之后版本,可以直接使用本文示例。
软件自定义配置示例如下:
- 以JindoFS存储日志为例,替换
oss_bucket
及对应路径。[ { "ServiceName":"SMARTDATA", "FileName":"namespace", "ConfigKey":"jfs.namespaces", "ConfigValue":"emr-jfs" }, { "ServiceName":"SMARTDATA", "FileName":"namespace", "ConfigKey":"jfs.namespaces.emr-jfs.oss.uri", "ConfigValue":"oss://oss-bucket/jindoFS" }, { "ServiceName":"SMARTDATA", "FileName":"namespace", "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_bucket
及对应路径。[ { "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" } ]