Hadoop生態圈以及各組成部分的簡介
1.Hadoop是什麼?
適合大資料的分散式儲存與計算平臺
HDFS: Hadoop Distributed File System分散式檔案系統
MapReduce:平行計算框架
2.Hadoop生態圈
①HBase
Google Bigtable的開源實現
列式資料庫
可叢集化
可以使用shell、web、api等多種方式訪問
適合高讀寫(insert)的場景
HQL查詢語言
NoSQL的典型代表產品
②Hive
資料倉庫工具。可以把Hadoop下的原始結構化資料變成Hive中的表
支援一種與SQL幾乎完全相同的語言HiveQL。除了不支援更新、索引和事務,幾乎SQL的其它特徵都能支援
可以看成是從SQL到Map-Reduce的對映器
提供shell、JDBC/ODBC、Thrift、Web等介面
③Zookeeper
Google Chubby的開源實現
用於協調分散式系統上的各種服務。例如確認訊息是否準確到達,防止單點失效,處理負載均衡等
應用場景:Hbase,實現Namenode自動切換
工作原理:領導者,跟隨者以及選舉過程
④Sqoop
用於在Hadoop和關係型資料庫之間交換資料
通過JDBC介面連入關係型資料庫
⑤Chukwa
架構在Hadoop之上的資料採集與分析框架
主要進行日誌採集和分析
通過安裝在收集節點的“代理”採集最原始的日誌資料
代理將資料發給收集器
收集器定時將資料寫入Hadoop叢集
指定定時啟動的Map-Reduce作業隊資料進行加工處理和分析
⑥Pig
Hadoop客戶端
使用類似於SQL的面向資料流的語言Pig Latin
Pig Latin可以完成排序,過濾,求和,聚組,關聯等操作,可以支援自定義函式
Pig自動把Pig Latin對映為Map-Reduce作業上傳到叢集執行,減少使用者編寫Java程式的苦惱
⑦Avro
資料序列化工具,由Hadoop的創始人Doug Cutting主持開發
用於支援大批量資料交換的應用。支援二進位制序列化方式,可以便捷,快速地處理大量資料
動態語言友好,Avro提供的機制使動態語言可以方便地處理 Avro資料。
Thrift介面
⑧Cassandra
NoSQL,分散式的Key-Value型資料庫,由Facebook貢獻
與Hbase類似,也是借鑑Google Bigtable的思想體系
只有順序寫,沒有隨機寫的設計,滿足高負荷情形的效能需求
3.Hadoop生態圈流程圖