本文为您介绍如何将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
说明 本文以SmartData 3.6.0为例。如果是SmartData 2.2.3及之前版本,需要修改 ServiceNameBIGBOOTFileNamebigboot;如果是SmartData 2.2.3到SmartData 2.7.3版本(包括SmartData 2.7.3),需要修改 ServiceNameSMARTDATAFileNamebigboot;如果是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"
       }
    ]