Hadoop上Data Locality的詳解
目前累計服務客戶1000多家,積累了豐富的產品開發及服務經驗。以網站設計水平和技術實力,樹立企業形象,為客戶提供成都網站設計、網站制作、網站策劃、網頁設計、網絡營銷、VI設計、網站改版、漏洞修補等服務。創新互聯建站始終以務實、誠信為根本,不斷創新和提高建站品質,通過對領先技術的掌握、對創意設計的研究、對客戶形象的視覺傳遞、對應用系統的結合,為客戶提供更好的一站式互聯網解決方案,攜手廣大客戶,共同發展進步。
Hadoop上的Data Locality是指數據與Mapper任務運行時數據的距離接近程度(Data Locality in Hadoop refers to the“proximity” of the data with respect to the Mapper tasks working on the data.)
1. why data locality is imporant?
當數據集存儲在HDFS中時,它被劃分為塊并存儲在Hadoop集群中的DataNode上。當在數據集執行MapReduce作業時,各個Mappers將處理這些塊(輸進行入分片處理)。如果Mapper不能從它執行的節點上獲取數據,數據需要通過網絡從具有這些數據的DataNode拷貝到執行Mapper任務的節點上(the data needs to be copied over the network from the DataNode which has the data to the DataNode which is executing the Mapper task)。假設一個MapReduce作業具有超過1000個Mapper,在同一時間每一個Mapper都試著去從集群上另一個DataNode節點上拷貝數據,這將導致嚴重的網絡阻塞,因為所有的Mapper都嘗試在同一時間拷貝數據(這不是一種理想的方法)。因此,將計算任務移動到更接近數據的節點上是一種更有效與廉價的方法,相比于將數據移動到更接近計算任務的節點上(it is always effective and cheap to move the computation closer to the data than to move the data closer to the computation)。
2. How is data proximity defined?
當JobTracker(MRv1)或ApplicationMaster(MRv2)接收到運行作業的請求時,它查看集群中的哪些節點有足夠的資源來執行該作業的Mappers和Reducers。同時需要根據Mapper運行數據所處位置來考慮決定每個Mapper執行的節點(serious consideration is made to decide on which nodes the individual Mappers will be executed based on where the data for the Mapper is located)。
3. Data Local
當數據所處的節點與Mapper執行的節點是同一節點,我們稱之為Data Local。在這種情況下,數據的接近度更接近計算( In this case the proximity of the data is closer to the computation.)。JobTracker(MRv1)或ApplicationMaster(MRv2)首選具有Mapper所需要數據的節點來執行Mapper。
4. Rack Local
雖然Data Local是理想的選擇,但由于受限于集群上的資源,并不總是在與數據同一節點上執行Mapper(Although Data Local is the ideal choice, it is not always possible to execute the Mapper on the same node as the data due to resource constraints on a busy cluster)。在這種情況下,優選地選擇在那些與數據節點在同一機架上的不同節點上運行Mapper( In such instances it is preferred to run the Mapper on a different node but on the same rack as the node which has the data.)。在這種情況下,數據將在節點之間進行移動,從具有數據的節點移動到在同一機架上執行Mapper的節點,這種情況我們稱之為Rack Local。
5. Different Rack
在繁忙的群集中,有時Rack Local也不可能。在這種情況下,選擇不同機架上的節點來執行Mapper,并且將數據從具有數據的節點復制到在不同機架上執行Mapper的節點。這是最不可取的情況。
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
本文題目:Hadoop上DataLocality的詳解
本文鏈接:http://vcdvsql.cn/article36/gdgipg.html
成都網站建設公司_創新互聯,為您提供標簽優化、用戶體驗、電子商務、微信小程序、網站策劃、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯