自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hadoop 2.0中作業(yè)日志收集原理以及配置方法

開(kāi)發(fā) 前端 Hadoop
Hadoop 2.0提供了跟1.0類似的作業(yè)日志收集組件,從一定程度上可認(rèn)為直接重用了1.0的代碼模塊,考慮到Y(jié)ARN已經(jīng)變?yōu)橥ㄓ觅Y源管理平臺(tái),因此,提供一個(gè)通用的日志收集模塊勢(shì)在必行,由于目前通用日志收集模塊正在開(kāi)發(fā)中(可參考“YARN-321”),本文僅介紹MRv2(MapReduce On YARN)自帶的日志收集模塊,包括工作原理以及配置方法。

Hadoop 2.0提供了跟1.0類似的作業(yè)日志收集組件,從一定程度上可認(rèn)為直接重用了1.0的代碼模塊,考慮到Y(jié)ARN已經(jīng)變?yōu)橥ㄓ觅Y源管理平臺(tái),因此,提供一個(gè)通用的日志收集模塊勢(shì)在必行,由于目前通用日志收集模塊正在開(kāi)發(fā)中(可參考“YARN-321”),本文僅介紹MRv2(MapReduce On YARN)自帶的日志收集模塊,包括工作原理以及配置方法。

在Hadoop 2.0中,每個(gè)作業(yè)日志包含兩部分,作業(yè)運(yùn)行日志和任務(wù)運(yùn)行日志,作業(yè)運(yùn)行由MRAppMaster(MapReduce 作業(yè)的ApplicationMaster)產(chǎn)生,詳細(xì)記錄了作業(yè)啟動(dòng)時(shí)間、運(yùn)行時(shí)間,每個(gè)任務(wù)啟動(dòng)時(shí)間、運(yùn)行時(shí)間、Counter值等信息,與 Hadoop 1.0中的JobHistory日志是基本一致。MapReduce作業(yè)的ApplicationMaster也運(yùn)行在Container中,且是編號(hào)為 000001的Container,比如container_1385051297072_0001_01_000001,它自身可認(rèn)為是一個(gè)特殊的task,因此,也有自己的運(yùn)行日志,該日志與Map Task和Reduce Task類似,但并不是前面介紹的“作業(yè)運(yùn)行日志”。

ApplicationMaster產(chǎn)生的作業(yè)運(yùn)行日志舉例如下,日志采用apache avro(作為日志存儲(chǔ)格式是Hadoop 2.0唯一使用到Avro的地方)工具,以json的格式保存:

  1. {“type”:”JOB_SUBMITTED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobSubmitted”: 
  2.  
  3. {“jobid”:”job_1385051297072_0002″,”jobName”:”QuasiMonteCarlo”,”userName”:”yarn”, “submitTime”:1385393834983,”jobConfPath”: 
  4.  
  5. “hdfs://hadoop-test/tmp/hadoop-yarn/staging/yarn/.staging/job_1385051297072_0002/job.xml”,”acls”: 
  6.  
  7. {},”jobQueueName”:”default”,”workflowId”:”",”workflowName”:”",”workflowNodeName”:”", 
  8.  
  9. “workflowAdjacencies”:”",”workflowTags”:”"}}} 
  10.  
  11. {“type”:”JOB_INITED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobInited”: 
  12.  
  13. {“jobid”:”job_1385051297072_0002″,”launchTime”:1385393974505,”totalMaps”:8, 
  14.  
  15. “totalReduces”:1,”jobStatus”:”INITED”,”uberized”:false}}} 
  16.  
  17. {“type”:”JOB_INFO_CHANGED”,”event”:{“org.apache.hadoop.mapreduce.jobhistory.JobInfoChange”: 
  18.  
  19. {“jobid”:”job_1385051297072_0002″,”submitTime”:1385393834983,”launchTime”:1385393974505}}} 

作業(yè)運(yùn)行日志產(chǎn)生過(guò)程如下

步驟1:ResourceManager啟動(dòng)作業(yè)的 ApplicationMaster,ApplicationMaster運(yùn)行過(guò)程中,將日志寫 到${yarn.app.mapreduce.am.staging-dir}/yarn/.staging/job_XXXXX_XXX/下,其中參數(shù) yarn.app.mapreduce.am.staging-dir 的默認(rèn)值是/tmp/hadoop-yarn/staging,該目錄下將存在3個(gè)文件,分別是以“.jhist”、“.summary”和“.xml” 結(jié)尾的文件,分別表示作業(yè)運(yùn)行日志、作業(yè)概要信息和作業(yè)配置屬性,其中,作業(yè)概要信息只有一句話,舉例如下:

 

jobId=job_1385051297072_0002,submitTime=1385393834983,launchTime=1385393974505,

firstMapTaskLaunchTime=1385393976706,firstReduceTaskLaunchTime=1385393982581,

finishTime=1385393985417,resourcesPerMap=1024,resourcesPerReduce=1024,

numMaps=8,numReduces=1,user=yarn,queue=default,status=SUCCEEDED,

mapSlotSeconds=47,reduceSlotSeconds=5,jobName=QuasiMonteCarlo

步驟2:所有任務(wù)運(yùn)行完成后,意味著,該作業(yè)運(yùn)行完成,此時(shí)ApplicationMaster將三個(gè)文件拷貝 到${ mapreduce.jobhistory.intermediate-done-dir}/${username}目錄下,拷貝后的文件名后面添 加”_tmp”,其中mapreduce.jobhistory.intermediate-done-dir默認(rèn)值 是${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate

步驟3:ApplicationMaster將拷貝完成的三個(gè)文件重新命名成“.jhist”、“.summary”和“.xml”結(jié)尾的文件(去掉“_tmp”)

步驟4:周期性掃描線程定期將done_intermediate的日志文件轉(zhuǎn)移到done目錄(通過(guò)參數(shù) mapreduce.jobhistory.done-dir配置,默認(rèn)值為${yarn.app.mapreduce.am.staging- dir}/history/done)下,同時(shí)刪除“.summary”文件(該文件中的信息,.jhist文件中都有)。

步驟5:ApplicationMaster移除

${yarn.app.mapreduce.am.staging-dir}/yarn/.staging/job_XXXXX_XXX/目錄

默認(rèn)情況下,任務(wù)運(yùn)行日志產(chǎn)只會(huì)存放在各NodeManager的本地磁盤上,你可以打開(kāi)日志聚集功能,以便讓任務(wù)將運(yùn)行日志推送到HDFS上,以便集中管理和分析。

默認(rèn)情況下,NodeManager將日志保存到y(tǒng)arn.nodemanager.log-dirs下,,該屬性缺省值 為${yarn.log.dir}/userlogs,也就是Hadoop安裝目錄下的logs/userlogs目錄中,通常為了分?jǐn)偞疟P負(fù)載,我們會(huì) 為該參數(shù)設(shè)置多個(gè)路徑,此外,需要注意的是,ApplicationMaster的自身的日志也存放在該路目下,因?yàn)樗策\(yùn)行在Container之中, 是一個(gè)特殊的task。舉例如下,其中,最后一個(gè)是某個(gè)作業(yè)的ApplicationMaster日志(編號(hào)是000001)。

 

yarn@YARN-001:/opt/yarn/yarn-client$ ls ../yarn/logs/userlogs/*

../yarn/logs/userlogs/application_1384428704524_0003:

container_1384428704524_0003_01_000004

../yarn/logs/userlogs/application_1384428704524_0008:

container_1384428704524_0008_01_000003

../yarn/logs/userlogs/application_1384428704524_0012:

container_1384428704524_0012_01_000001

將作業(yè)和任務(wù)日志存放在各個(gè)節(jié)點(diǎn)上不便于統(tǒng)一管理和分析,為此,我們可以啟用日志聚集功能。打開(kāi)該功能后,各個(gè)任務(wù)運(yùn)行完成后,會(huì)將生成的日志推送 到HDFS的一個(gè)目錄下(之前的并不會(huì)立即刪除,在HDFS上,每個(gè)任務(wù)產(chǎn)生的三個(gè)文件,即syslog、stderr和stdout將合并一個(gè)文件,并 通過(guò)索引記錄各自位置),配置方法可參考文章:“Hadoop YARN配置參數(shù)剖析(2)—權(quán)限與日志聚集相關(guān)參數(shù)”。

接下來(lái),講一下MapReduce的JobHistory Server,這是一個(gè)獨(dú)立的服務(wù),可通過(guò)web UI展示歷史作業(yè)日志,之所以將其獨(dú)立出來(lái),是為了減輕ResourceManager負(fù)擔(dān)。通常可以啟動(dòng)在一臺(tái)獨(dú)立的機(jī)器上,你需在mapred- site.xml中對(duì)其進(jìn)行配置,并使用“sbin/mr-jobhistory-daemon.sh start jobhistoryserver”命令啟動(dòng)它。JobHistory Server將會(huì)分析作業(yè)運(yùn)行日志,并展示作業(yè)的啟動(dòng)時(shí)間、結(jié)束時(shí)間、各個(gè)任務(wù)的運(yùn)行時(shí)間,各種Counter數(shù)據(jù)等,并產(chǎn)生一個(gè)指向作業(yè)和任務(wù)日志的鏈 接。

最后,介紹一下mapred-site.xml和yarn-site.xml這兩個(gè)配置文件的作用。Yarn- site.xml是YARN相關(guān)的配置文件,客戶端、ResourceManager和NodeManager需要改配置文件,為了簡(jiǎn)單,可讓這三類節(jié)點(diǎn) 上的該文件是一致的。Mapred-site.xml是MapReduce特有的配置文件,在YARN中,mapreduce已經(jīng)變成了一個(gè)客戶端編程 庫(kù),因此只有客戶端和jobhistory server需要該配置文件,其他節(jié)點(diǎn),比如resourceManager和NodeManager不需要,除非你們也把這些節(jié)點(diǎn)作為客戶端提供給用戶 使用,另外,一定要讓客戶端和jobhistory server上的mapres-site.xml一致。

原文鏈接:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-jobhistory-log/

責(zé)任編輯:陳四芳 來(lái)源: dongxicheng.org
相關(guān)推薦

2013-05-30 09:07:29

Hadoop 2.0

2010-06-22 10:08:56

Linux at命令

2012-09-18 09:55:44

Hadoop 2.0

2010-06-03 15:39:47

Hadoop配置

2024-04-09 08:00:00

Kubernetes管理系統(tǒng)云原生

2018-09-18 15:21:47

Hive數(shù)據(jù)倉(cāng)庫(kù)程序

2021-08-27 07:47:07

Nacos灰度源碼

2023-08-08 00:06:31

2014-02-12 10:28:50

Hadoop

2021-05-07 16:23:54

鴻蒙HarmonyOS應(yīng)用

2012-05-28 09:23:40

JavaHadoopApache

2013-05-27 14:05:16

2013-06-08 14:34:42

Hadoop 2.0

2011-08-17 15:37:23

Objective-C垃圾收集

2022-05-11 10:58:11

MetricKitiOS13系統(tǒng)崩潰診斷

2022-06-12 21:28:26

Fluentd開(kāi)源

2019-12-09 15:20:09

JavascriptPromise前端

2017-03-22 20:21:16

Hadoop框架分布式

2011-03-11 17:23:03

2017-08-03 10:38:32

HADOOP1.XHDFSHadoop
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)