【Hadoop】jobhistory 作业缓存源码详解
jobhistory 作业缓存 jobhistory 一般会保存一部分作业信息到内存中,查询作业信息的时候一般会从内存查询,如果内存查询不到就会从磁盘上扫描。 jobhistory 缓存一般分为两层,第一层是guava缓存,默认情况下guava的缓存个数是5,可以通过配置项mapreduce.jobhistory.loadedjobs.cache.size控制。 当guava的一级缓存中不存在的时候,默认是需要重新加载的,jobhistory中定义了加载规则,定义代码如下: CacheLoader<JobId, Job> loader; loader = new CacheLoader<JobId, Job>() { @Override public Job load(JobId key) throws Exception { return loadJob(key); } }; 其中loadJob实现如下,其中hsManager为加载具体实现, private Job loadJob(JobId jobId) throws RuntimeException, ....