Transcript 下載/瀏覽
研究於Hadoop的雲端計算模型及其應用 Huang Lu, Hu Ting ting 2012 Third International Conference on Networking and Distributed Computing 報告者:吳慧菱 報告日期:2014/12/04 大 綱 緒論 Hadoop雲端運算架構 Hadoop雲端運算模型 Hadoop的狀態 Hadoop現有的問題 Hadoop的性能優化 結論 緒 論 (1/3) 近年來,隨著雲端運算技術概念和應用的普及,Hadoop越 來越受學術界人士和工業界關注。 Hadoop 雲 端 運 算 架 構 是 由 Apache 所 主 導 與 開 發 的 , Hadoop具備高度擴充性及可用度的大型資料處理技術。 1 緒 論 (2/3) Hadoop雲端運算技術由三個主要架構組成: 1. 分散式檔案系統架構(HDFS) 2. 分散式資料庫架構(HBase) 3. 分散式資料平行運算處理架構(MapReduce)。 2 緒 論 (3/3) Open-source Cloud Computing System Commercial Cloud Computing System Hadoop HDFS Google GFS Hadoop MapReduce Google MapReduce Hadoop HBase Google Bigtable Hadoop ZooKeeper Google Chubby Hadoop Pig Google Sawzall Ecualyptus, Enomalv ECP, Nimbus Amazon EC2 Eucalyptus Amazon S3 表1. Open-source和商業雲端運算系統之間的對應關係 3 Hadoop雲端運算架構 (1/2) Hadoop不只是用於存 儲分散式檔案系統,也 可在通用計算設備組成 的大型群集上運行分散 式應用的框架。 4 Hadoop雲端運算架構 (2/2) 為了確保可靠性,HDFS 創建多個數據塊副本, 並將它們放在計算節點 服務器群集上。接著利 用 MapReduce 處 理 它 們所在節點上的數據。 5 Hadoop雲端運算模型 (1/8) Hadoop主要是採用主/從(Master/Slave)結構模型。 Master是負責NameNode和JobTracker。 JobTracker 的 主 要 職 責 是 實施任務、跟蹤和調度各個 Slave的任務執行。 6 Hadoop雲端運算模型 (2/8) Slave是負責DataNode和TaskTracker。 TaskTracker的主要職責是管理 根據從應用程序和報告的狀態 和性能到JobTracker的請求, 收集的本地數據和結果數據的 處理。 當JobTracker和TaskTracker同 時 主 要 處 理 MapReduce 任 務 時,NameNode和DataNode 會被委託實現HDFS的任務。 7 Hadoop雲端運算模型 (3/8) HDFS(分散式檔案系統) HDFS將檔案切割成大小相 同的區塊,DataNode則 以區塊為單位,實際儲存 資料,並負責管理資料內 容,每個區塊可以獨立被 建立、複製或刪除。 8 Hadoop雲端運算模型 (4/8) HDFS的特性歸納如下: 1. 資料僅可讀取,無法更新修改。 2. 檔案內容分散儲存,降低風險。 3. 檔案資訊與實體資料分離,增加擴充性。 9 Hadoop雲端運算模型 (5/8) MapReduce(分散式資料平行運算處理) 在MapReduce框架中, JobTracker是唯一的主控, 它可以在任何電腦上執行 其它TaskTracker的調度和 管 理 , 分 配 Map 任 務 和 Reduce 任 務 的 自 由 TaskTracker並行運行和監 視任務的條件。 MapReduce的任務分配關係圖 10 Hadoop雲端運算模型 (6/8) Hadoop的資料處理 11 Hadoop雲端運算模型 (7/8) MapReduce的特性歸納如下: 1. 適合處理大量資料。 2. 擴充容易,可快速提升處理效能。 12 Hadoop雲端運算模型 (8/8) HBase(分散式資料庫架構) 是以欄位(column)為單位的分散式資料庫系統架構。 依據欄位大小分割資料,並分散到多部機器。 壓縮資料,節省磁碟存放空間。 利用記憶體存取快速的優點,加速資料的讀寫動作。 13 Hadoop的狀態 (1/2) 應用與研究的現狀 應用 Yahoo Facebook 百度 淘寶網 亞馬遜 阿里巴巴 Twitter 中國移動研究院 研究 廣告系統、Web搜索 資料分析、機器學習 搜尋日誌分析、Web資料探勘 儲存和處理電子商務交易的數據 產品的下標 整理業務數據、ISEARCH搜尋引擎 儲存微網誌、日誌文件、中間數據 BigCloud系統進行數據分析,並提供外部服務。 14 Hadoop的狀態 (2/2) 發展趨勢 除了互聯網行業,很多研究機構和大學在國內外也投入的 Hadoop的研究。這不但有助於Hadoop的技術的推廣和發展, 也拓寬了應用的大規模數據處理的範圍,更讓Hadoop可以在許 多方面進行改進。 隨著雲計算技術的成熟成長,它已逐漸從理論研究階段改為練習階 段,這意味著,Hadoop的研究和應用將得到越來越多的關注學 術界。毫無疑問,在不久的將來,在技術研究和應用的Hadoop 的熱潮將爆發。 15 Hadoop現有的問題 1. NameNode/JobTracker其中任何一點故障。 2. HDFS小檔案的問題。 3. 因為JobTracker是負責監測和調度同步,可能會造成過載。 4. 數據處理性能。 16 Hadoop的性能優化 (1/4) 從應用程序進行優化的角度來看 因為MapReduce的反覆和逐行解析資料檔案,在這種情況下,高 效率的編程應用程序是一種優化。MapReduce的性能可以以下幾 個方面來提高: 避免不必要的reduce任務。 拉外部檔案。 添加組合到Job。 重用可寫式。 用StringBuffer,而不是String來跟蹤程序的瓶頸。 17 Hadoop的性能優化 (2/4) Hadoop的系統參數優化 在目前的Hadoop系統有超過190配置參數,要如何調整這些參數, 使作業可以運行盡可能快也是一種優化的想法。Hadoop的系統參 數優化可以從以下三個方面入手: Linux文件系統的參數。 Hadoop的一般參數。 Hadoop作業參數。 18 Hadoop的性能優化 (3/4) Hadoop的Job調度算法的優化 Hadoop是基於群集設備資訊和節點數量的配置,事實已經證明可 以提高Hadoop群集的性能。然而,這種方法只能優化靜態性能, 不能在執行時,修改配置檔案、加載或放進動態性能,而優化Job 調度算法可以有效解決這個問題。 調度在Hadoop中,是一個可以操控的模組,而使用者可以根據自 己的實際應用需求來設計。 19 Hadoop的性能優化 (4/4) 任務調度程序 1. 預設的調度 2. 與調度的運算能力 3. 公平分享調度算法 20 結 論 Hadoop雲端運算系統相較於傳統網路伺服器架構,這些雲端運算技 術擁有更大的擴充延展性、更多的資料運算能力,以及更快速的異常 復原能力。但是在應用到實體上,要如何掌握關鍵技術、如何優化性 能,這將是未來必須面對的挑戰。 21