基於JindoFS儲存YARN MR或SPARK作業日誌
更新時間:
Copy as MD
本文為您介紹如何將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 Storage模式。 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
建立叢集
在建立叢集時,添加軟體自訂配置,建立叢集詳情請參見建立叢集。選擇產品版本為EMR-3.36.0,在進階設定地區開啟軟體自訂配置開關,在配置文本域中填入 JSON 配置,其中
ConfigKey 為 jfs.namespaces,ConfigValue 為 emr-jfs。
說明 本文以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" } ]
该文章对您有帮助吗?