Hadoop工具在其不斷進化中披荊斬棘

jopen 9年前發布 | 10K 次閱讀 Hadoop

當提到大數據管理,Hadoop絕對是業界最受歡迎的。隨著它日益增長的普及性,云管理員不得不應付其不斷升級的生態系統的挑戰。Hadoop最開始是一 個用來運行MapReduce的平臺,但卻漸漸演化成為一個大型計算平臺并且產生了各種各樣的工具來支持完整的數據管理的生命周期。

YARN—一個在Hadoop2里引入的新的資源管理器使得Hadoop能夠持續的發展。隨著數據管理平臺的不斷變化,云管理員必須要對各種Hadoop工具很熟悉才能很好的對云環境提供支持。

三種支持Hadoop的腳本語言

把數據移入和移出Hadoop分布式文件系統(HDFS)對于使用Hadoop的大部分管理員來說很常見。一些云管理員用他們偏好的編程語言來編寫自定義腳本,有三種不同的高效選擇值得我們關注。

Pig:高級聲明性語言來指定跑在Hadoop上的ETL工作,提供高級命令來處理文件的每一行,數據集過濾,數據子集分組,排序以及其他常用的操作。Pig對于文本文件支持很好,并且很容易學習—尤其對那些熟悉SQL的人。開發人員能夠創建用戶定義的函數來強化功能。

Sqoop:批量數據加載工具,用來簡化Hadoop和關系型數據庫之間的數據移植。它能讀元數據,提取數據表中的數據,還能在HDFS上創建 包含表數據的文件。Sqoop能夠并發的處理批量數據加載,從而比使用單獨線性的數據加載腳本要快得多。Sqoop還會生成Java類來操控導入的數據 表,在你的應用中使用。

Flume:為了可擴展性和可靠性而設計的分布式系統,消除了需要設計自定義的應用在一個流處理操作中根據負載的變化來伸縮的必要性。 Flume被設計成可以實時傳輸大量的數據,所以很適合用來將數據移到Hadoop上。它使用一個基本的基于事件(events),數據源 (sources),數據去向(sinks)和管道(channels)的模型。

Oozie:給力的工作引擎

管理員們通常需要運行一套完整的程序來完成一個大型的數據分析任務。比如,你也許需要幾個Pig和Sqoop的工作來加載數據,少數Map Reduce的工作來轉換和分析數據,另一個Sqoop的工作來把結果寫到一個關系型數據庫中。

Oozie正是這樣一個工作流引擎能夠允許云管理員指定哪些工作需要被運行以及它們之間的依賴關系。比如,MapReduce必須要等到數據加載完畢才能開始運行。管理員使用一個被稱為hPDL的XML過程定義語言來指定Oozie工作流的細節。

除了使用聲明性語言來描述工作流之外,Oozie能夠重起失敗的工作流。Oozie利用工作流得到的信息只需要從失敗的那一步開始繼續運行,而不需要從最開始重新運行每一步。

管理復雜應用數據

Hadoop是大數據管理和分析的標準。ETL和流數據工具,工作流支持和數據管理工具在Hadoop環境中經常被使用來精簡DevOps和提供大規模的基礎數據管理服務。

H adoop的簡單數據管理需求用HDFS就可以做到,但是更復雜的應用需要HBase和Hive。

HBase是一種列數據存儲類型的NoSQL數據庫。它被設計成可以支持十億級別的行和列的超大數據表。HBase擅長包括快速查找和更新超過幾百萬行數據集的數據管理需求。

Hive是一個數據倉庫平臺,支持在大量數據集合上的類SQL的查詢能力,它利用Hadoop的并行架構來將一個大的數據表分割成多個存儲在HDFS上的文件。但是,Hive的高性能是有代價的。比如說,Hive支持覆蓋和數據添加,但是不支持刪除和更新。

來自:http://www.searchsoa.com.cn/showcontent_86738.htm

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!