1. 程式人生 > >Hadoop生態圈以及各組成部分的簡介

Hadoop生態圈以及各組成部分的簡介

1.Hadoop是什麼?

適合大資料的分散式儲存與計算平臺

HDFS: Hadoop Distributed File System分散式檔案系統

MapReduce:平行計算框架

2.Hadoop生態圈

hadoop

①HBase

Google Bigtable的開源實現

列式資料庫

可叢集化

可以使用shell、web、api等多種方式訪問

適合高讀寫(insert)的場景

HQL查詢語言

NoSQL的典型代表產品

hadoop

②Hive

資料倉庫工具。可以把Hadoop下的原始結構化資料變成Hive中的表

支援一種與SQL幾乎完全相同的語言HiveQL。除了不支援更新、索引和事務,幾乎SQL的其它特徵都能支援

可以看成是從SQL到Map-Reduce的對映器

提供shell、JDBC/ODBC、Thrift、Web等介面

hadoop

③Zookeeper

Google Chubby的開源實現

用於協調分散式系統上的各種服務。例如確認訊息是否準確到達,防止單點失效,處理負載均衡等

應用場景:Hbase,實現Namenode自動切換

工作原理:領導者,跟隨者以及選舉過程

hadoop

④Sqoop

用於在Hadoop和關係型資料庫之間交換資料

通過JDBC介面連入關係型資料庫

hadoop

⑤Chukwa

架構在Hadoop之上的資料採集與分析框架

主要進行日誌採集和分析

通過安裝在收集節點的“代理”採集最原始的日誌資料

代理將資料發給收集器

收集器定時將資料寫入Hadoop叢集

指定定時啟動的Map-Reduce作業隊資料進行加工處理和分析

hadoop

⑥Pig

Hadoop客戶端

使用類似於SQL的面向資料流的語言Pig Latin

Pig Latin可以完成排序,過濾,求和,聚組,關聯等操作,可以支援自定義函式

Pig自動把Pig Latin對映為Map-Reduce作業上傳到叢集執行,減少使用者編寫Java程式的苦惱

hadoop

⑦Avro

資料序列化工具,由Hadoop的創始人Doug Cutting主持開發 

用於支援大批量資料交換的應用。支援二進位制序列化方式,可以便捷,快速地處理大量資料 

動態語言友好,Avro提供的機制使動態語言可以方便地處理 Avro資料。 

Thrift介面

hadoop

⑧Cassandra

NoSQL,分散式的Key-Value型資料庫,由Facebook貢獻

與Hbase類似,也是借鑑Google Bigtable的思想體系

只有順序寫,沒有隨機寫的設計,滿足高負荷情形的效能需求

hadoop

3.Hadoop生態圈流程圖

hadoop