HDFS(Hadoop distribute file system)——Hadoop生態系統的基礎組件Hadoop分佈式文件系統。它是其餘一些工具的基礎HDFS的機制是將大量數據分佈到計算機集羣上,數據一次寫入,但能夠屢次讀取用於分析。HDFS讓Hadoop能夠最大化利用磁盤。
HBase—— 一個構建在HDFS之上的面向列的NoSql數據庫,HBase用於對打量數據進行快速讀取/寫入。HBase將Zookeeper用於自身的管理,以保證其全部組件都正在運行。HBase使得Hadoop能夠最大化利用內存。
MapReduce——MapReduce是Hadoop的主要執行框架,它是一個用於分佈式並行數據處理的編程模型,將做業分爲mapping階段和reduce階段。開發人員謂Hadoop編寫MapReduce做業,並使用HDFS中存儲的數據,而HDFS能夠保證快速的數據訪問。鑑於MapReduce做業的特性,Hadoop以並行的方式將處理過程移向數據。MapReduce使得Hadoop能夠最大化利用CPU。
Zookeeper——Zookeeper是Hadoop的分佈式協調服務。Zookeeper被設計成能夠在機器集羣上運行,是一個具備高度可用性的服務,用於Hadoop操做的管理,並且不少Hadoop組件都依賴它。 Oozie—— Oozie是一個北極測很難過到Hadoop軟件棧中的可擴展的Workflow系統。用於協調多個MapReduce做業的執行。它可以處理大量的複雜性,基於外部事件來管理執行。 Pig——Pig是對MapReduce編程複雜性的抽象,Pig平臺包含用於分析Hadoop數據集的執行環境和腳本語言(Pig Latin)。它的編譯器將Pig Latin翻譯爲MapReduce程序序列。
Hive——相似於SQL的高級語言,用於執行對存儲在Hadoop中數據的查詢,Hive容許不熟悉MapReduce的開發人員編寫數據查詢語句,它會將翻譯爲Hadoop中的MapReduce做業。相似於Pig。Hive是一個抽象層,適合於較熟悉SQL而不是java編程的數據庫分析師。
Hadoop生態系統中還包含一些用於與其餘企業級應用進行集成的框架,例如上圖所示的Sqoop和Flume: Sqoop是一個連通性工具,用於在關係型數據庫和數據倉庫Hadoop之間移動數據。Sqoop利用數據庫來描述導入/導出數據的模式,並使用MapReduce實現並行操做和容錯。
Fulme是一個分佈式的、具備可靠性和高可用性的服務,用於從單獨的機器上將大量數據高效的收集、聚合並移動到HDFS中。它給予一個簡單靈活的架構,童工流式數據操所。它藉助於簡單可擴展的數據模型,容許未來自企業中多臺機器上的數據移到Hadoop中。
hbase 是架構在hadoop之上的分佈式數據庫,hive即hive sql,用戶能夠經過寫hive sql,hive負責將sql生成相關的mapreduce做業,並提交給hadoop集羣來運行這樣的做業。hive能夠直接分析hdfs上的文件,也能夠分析hbase表數據。通常hive是安裝在namenode上運行。
簡單來講hive用來批量處理數據,HBase用來快速索引數據。
HBase是一個分佈式的基於列存儲的非關係型數據庫。HBase的查詢效率很高,主要因爲查詢和展現結果。
hive是分佈式的關係型數據庫。主要用來並行分佈式 處理 大量數據。hive中的全部查詢除了"select * from table;"都是須要經過Map\Reduce的方式來執行的。因爲要走Map\Reduce,即便一個只有1行1列的表,若是不是經過select * from table;方式來查詢的,可能也須要八、9秒。但hive比較擅長處理大量數據。當要處理的數據不少,而且Hadoop集羣有足夠的規模,這時就能體現出它的優點。
java