下載/瀏覽

Download Report

Transcript 下載/瀏覽

Hadoop:Addressing Challenges of Big Data
Kamalpreet Singh, Ravinder Kaur
2014 IEEE International Advance Computing Conference (IACC), Gurgaon, 21-22 Feb, pp. 686 - 689
報告者:曾彥志
報告日期:2015/01/15
Outline
• Introduction and Related work
• Architecture
• Increased throughput by migrating computations
rather than data
• Replica placement
• Rack awareness policy
• Conclusion
Introduction and Related work (1/3)
•
Big Data指的是大量的資料,其膨脹的速度是非常的快,是很難使用
規則資料庫或是統計工具去管理的。
•
Hadoop基本上是用於Big Data的分析與處理,根據Big Data,Hadoop
建立支援應用程式對Big Data的運行和解決的三大挑戰:

容量(Volume)

速度(Velocity)

種類(Variety)
Introduction and Related work (2/3)
•
Hadoop就像是整個生態系統的協同工作,提供一套共同服務的專案,
將商品硬體轉換成連貫的服務,可靠地儲存海量的資料,還透過龐大
的分配,有效地處理這些資料。
•
Haoop的關鍵屬性在於它是冗餘和可靠的,假設你失去了一個由於某
種故障的機器,不需要做任何事情,它就會立即自動複製您的資料。
Introduction and Related work (3/3)
•
在傳統的方法中,企業使用功能強大
的電腦來處理現有的資料,但有一個
處理的上限。
•
而Hadoop遵循不同的方式和傳統企業
的方針,在Big Data中,先分解成較小
的碎片,使大量的資料可以高效和有
效地進行處理,完成所有子計算後再
結合在一起,並送回給應用程式。
Architecture(1/10)
•
Hadoop 有 兩 個 主 要 的 元 件 ,
MapReduce和檔案系統HDFS。
•
MapReduce是Hadoop的處理部分
和管理工作。
•
HDFS是指Hadoop分散式檔案統
中儲存了冗餘的計算資料。
•
專案是一組由Apache保護傘下提
供與Hadoop相關的任務援助工
具。
Architecture(2/10)
A. MapReduce
• Hadoop的MapReduce是一個程式設計模型及相關的實現,用於以高效
可靠、故障容錯的方式去處理大型資料集。
•
MapReduce的任務劃分跨各個獨立區塊的配置,由使用者以完全並行
的方式處理輸入的資料,指定產生一組中間Map函數的<Key,Value>
對值。
•
Map函數的輸出,被框架排序後,會作為輸入用戶的Reduce函數,用
來reduces/merges所有<Key,Value>對值與相同的中間關聯鍵。
Architecture(3/10)




MapReduce的工作步驟
MapReduce框架將輸入的資料拆成片段。
片段傳遞給不同的機器/群集做計算。
Map的腳本,由使用者編寫處理部分,將資料運行在每台機器上,並
產生一組中間的<Key,Value>對值。
 由 MapReduce程式庫 使用一組相同 的金鑰組合在 一起 ,並傳遞 給
Reduce函數進行聚合。
 Reduce的腳本,也是由使用者編寫,需要收集中間的金鑰值,將它們
合併成較小的集值。
Architecture(4/10)
Architecture(5/10)
 執行
• MapReduce是Hadoop的處理部分和管理工作,它有兩個部分 :

Job Tracker

Task Tracker
•
Job Tracker負責接受使用者的工作,將其劃分成更小的組件和調度個
別的Task Track進行計算,如果Task Tracker 失敗,它還負責監測Task
Tracker和重新執行該任務。
•
Task Tracker負責運行,一但完成了分配給它的任務,Job Tracker將結
果組合,並將最後結果回傳給應用程式。
Architecture(6/10)
 容錯計算
• Hadoop有內建牢記硬體和軟體故障的功能,如果任何群集的失敗或是
Task Tracker服務失敗,Job Tracker會透過定期監察工作追蹤檢測故障,
並委派相同的工作給其他的Task Tracker。
•
容錯能力不僅限於從屬的Task Tracker,為了避免單點故障,如果Job
Tracker失敗,企業版的Hadoop會保持兩個主機,一個作為主要主機,
一個作為備份主機,當主機死亡的情況下還能繼續使用。
Architecture(7/10)
B、HDFS
•HDFS是Hadoop分散式檔案系統設計為了儲存和對商品化的硬體支援可靠
地、高效地大量的資料集。
•Hadoop分散式檔案系統具有主/從架構:
Name Node作為主節點
Data Node作為從屬節點
Architecture(8/10)
 Name Node
• Name Node作為HDFS的協調員,保持資料的位置索引、管理檔案系統
的命名空間和調整用戶端對檔案的存取。
•
Name Node本身不儲存任何資料,任何資料也不會流經Name Node,它
只 確 定 並 追 蹤 檔 案 區 塊 到 Data Node 的 配 置 , 充 當 HDFS 超 資 料
(MetaData)的儲存庫。
•
任何需要的資料,在應用程式第一次接觸到Name Node時,就提供了
包含該檔案資料區塊的位置,同時儲存/寫入資料到HDFS,Name Node
會選擇一組Data Node用來儲存區塊的副本。
Architecture(9/10)
 Data Node
• Data Node是由Name Node
確定負責儲存檔案的區塊。
•
Data Node的服務來自於檔
案系統用戶端資料的讀寫
請求。
•
也是由Name Node負責接
到指示後進行建立、刪除、
複製的區塊。
Architecture(10/10)
 資料的容錯能力
• 在Hadoop中,失敗被視為規範,而不是例外情況,Name Node可以透
過心跳和從Data Node接收到的區塊報告,確保每個資料區塊總是具有
副本所需的數量。
•
Name Node還能透過均勻分佈的資料區塊和其副本的複製,來防止Data
Node過度的複製,因此,如果一個Data Node由於某種原因失敗,仍然
可以從其他Data Node檢索其副本的資料。
Increased throughput by migrating
computations rather than data
•
當資料的大小非常大時,始終是更有效地請求應用程式執行需要操作
的資料儲存計算。
•
在Hadoop中,MapReduce框架和分散式檔案系統HDFS運行在相同的節
點集合,也就是說,儲存和計算節點都是相同的。
•
Hadoop框架的配置減少了網路壅塞,增加頻寬跨群集的計算,更接近
於資料(或其副本),而不是將大型資料集遷移到運行應用程式,這樣的
做法增加了系統的整體輸送量。
Replica placement
•
副本的配置是HDFS可靠性
和性能的關鍵,HDFS充當
一個自我修復系統,如圖所
示。
•
假設第二個Data Node發生
故障,我們仍然有兩個其他
的Data Node具有所需的資
料副本。
Rack awareness policy
•
一個HDFS檔是由區塊組成,每
當一個新的區塊儲存資料,所需
的Name Node會分配一個區塊具
有 獨 特 的 區 塊 ID, 並 確 定 Data
Node到主機副本的區塊清單,
然後資料從用戶端序列的最小距
離流動到Data Node。
•
如圖所示,節點由一個或多個核
心交換器傳播,共享多個框架的
交換器連結,Name Node充當中
心 位 置 , 有 助 於 解 決 每 個 Data
Node框架位置中的超資料。
Conclusion
•
Hadoop最初的設計是用於批次導向的處理工作,例如:建立網頁索引、分析日誌數據,
而不被使用在線上交易處理、線上分析處理和決策支援系統的工作負載,是因為資料是
隨機或按順序地在一個關係數據的結構化數據上產生報告。
•
然而,Hadoop是可靠的(不論是在計算或是資料方面)、容錯、可擴展和強大的,也是目
前廣泛被使用在Yahoo!、Amazon、Facebook、IBM、Netflix和Twitter上,制定和執行大
規模分析或應用程式的龐大資料集。
•
Hadoop的MapReduce框架還簡化了程式工作者的工作,不必再擔心資料檔案的位置和錯
誤管理,程式工作者只需要專注於撰寫程式就好。
謝謝聆聽