基於JindoFS儲存YARN MR或SPARK作業日誌

更新時間:
Copy as MD

本文為您介紹如何將MapReduceSpark作業日誌配置到JindoFSOSS上。

背景資訊

E-MapReduce叢集支援隨用隨付以及訂用帳戶的付費方式,滿足不同使用者的使用需求。對於隨用隨付的叢集隨時會被釋放,而Hadoop預設會把日誌儲存在HDFS上,當叢集釋放以後,隨用隨付的使用者就無法查詢作業的日誌了,因此這也給隨用隨付使用者排查作業問題帶來了困難。因此,您可以將MapReduceSpark作業日誌配置到JindoFSOSS上,待重新建立叢集後,可以繼續查詢之前作業相關的日誌。

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 Storage模式。 block
    說明 JindoFS支援blockcache兩種儲存模式。
  • 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

建立叢集

在建立叢集時,添加軟體自訂配置,建立叢集詳情請參見建立叢集。選擇產品版本EMR-3.36.0,在進階設定地區開啟軟體自訂配置開關,在配置文本域中填入 JSON 配置,其中 ConfigKeyjfs.namespacesConfigValueemr-jfs
說明 本文以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"
     }
    ]