【Hadoop】jobhistory 作業(yè)緩存源碼詳解
jobhistory 作業(yè)緩存 jobhistory 一般會(huì )保存一部分作業(yè)信息到內存中,查詢(xún)作業(yè)信息的時(shí)候一般會(huì )從內存查詢(xún),如果內存查詢(xún)不到就會(huì )從磁盤(pán)上掃描。 jobhistory 緩存一般分為兩層,第一層是guava緩存,默認情況下guava的緩存個(gè)數是5,可以通過(guò)配置項mapreduce.jobhistory.loadedjobs.cache.size控制。 當guava的一級緩存中不存在的時(shí)候,默認是需要重新加載的,jobhistory中定義了加載規則,定義代碼如下: CacheLoader<JobId, Job> loader; loader = new CacheLoader<JobId, Job>() { @Override public Job load(JobId key) throws Exception { return loadJob(key); } }; 其中loadJob實(shí)現如下,其中hsManager為加載具體實(shí)現, private Job loadJob(JobId jobId) throws RuntimeException, ....