1. 程式人生 > >hadoop官網 閱讀之 MR Support for YARN Shared Cache

hadoop官網 閱讀之 MR Support for YARN Shared Cache

Overview

MapReduce 支援yarn共享快取,允許mapreduce利用額外的資源快取。

他儲存了作業提交客戶端和yarn叢集之間的網路頻寬。這會節約reduce工作的提交時間和所有工作的執行時間。

Enabling/Disabling the shared cache

首先,你的yarn叢集要確保開啟了共享快取服務。請檢視一下YARN的關於如何設定共享快取服務的文件。

一個mapreduce使用者可以通過指定資源型別來指定哪些資源是合格的可以上傳到共享快取的。這個可以通過在mapred-site.xml中的一個引數配置實現。

<property>
    <name>mapreduce.job.sharedcache.mode</name>
    <value>disabled</value>
    <description>
       A comma delimited list of resource categories to submit to the
       shared cache. The valid categories are: jobjar, libjars, files,
       archives. If "disabled" is specified then the job submission code
       will not use the shared cache.
    </description>
</property>

如果一個資源型別被列出來了,那麼他將檢查共享快取裡面有沒有這個資源,如果有,就可以直接利用這個快取資源,如果沒有的話,那麼他會指定這個資源需要被非同步上傳。

Specifying resources for the cache

一個mapreduce 使用者有三種辦法去指定一個mapreduce工作所需要的資源。

1.通過通用命令列選項解析器 :如果一個資源通過命令列被指定了,並且這個資源的型別是可以在快取上使用的,那麼這個資源就會被利用起來。

2.分散式快取api(Application Programming Interface):如果一個資源通過分散式快取指定了,那麼這個資源就不會使用共享快取,不管他的型別在共享快取上是不是可用的。

3.共享快取api: 這是一個新加入到org.apache.hadoop.mapreduce.job api裡面的集合方法。 它允許了使用者去新增檔案到共享快取,增添到共享快取和類路徑,並且增加一個檔案去共享快取。

 

Resource naming

確保一個mapreduce資原始檔有一個獨一無二的名字是很重要的。 當容器啟動期間允許mapreduce任務的Yarn容器已經本地化時,這會阻止符號連結崩潰。使用者可以使用uri的片段部分指定自己的資源名稱。淚如,對於在命令列上指定的檔案資源,他可能如下所示,-files /local/path/file1.txt#foo.txt, /local/path2/file1.txt#bar.txt 在上面的示例中,有兩個名為file1.txt的檔案將使用兩個不同的名稱就行本地化,foo.txt bar.txt

 

Resource Visibility

幻想快取中的所有資源都具有PUBLIC可見性

 

MapReduce client behavior while the shared cache is unavailable

在共享快取管理器不可用的事件中,maoreduce 客戶端使用一個失敗-快速機制。如果maoreduce客戶端連線不上共享快取的管理員,這個客戶端在剩下的任務提交的時間裡面就不會被使用了。這可以預防,mapreduce客戶端每次嘗試檢查共享快取中的資源時都會超時。mapreduce客戶端快速恢復為預設行為提交作業,就好像首先從未啟用共享快取一樣。