轉載--http://www.weixuehao.com/archives/559mysql
Hadoop框架中,有不少優秀的工具,幫助咱們解決工做中的問題。算法
從上圖能夠看出,越往右,實時性越高,越往上,涉及到算法等越多。sql
越往上,越往右就越火……數據庫
HDFS,(Hadoop Distributed File System) hadoop分佈式文件系統。在Google開源有關DFS的論文後,由一位大牛開發而成。HDFS的創建在集羣之上,適合PB級大量數據的存儲,擴展性強,容錯性高。它也是Hadoop集羣的基礎,大部份內容都存在了HDFS上。服務器
MapReduce,是Hadoop中的計算框架,由兩部分構成。Map操做以及Reduce操做。MapReduce,會生成計算的任務,分配到各個節點上,執行計算。這樣就避免了移動集羣上面的數據。並且其內部,也有容錯的功能。在計算過程當中,某個節點宕掉以後,會有策略進行應對。Hadoop集羣,上層的一些工具,好比Hive或者Pig等,都會轉換爲基本的MapReduce任務來執行。框架
HBase源自谷歌的BigTable。HBase是面向列存儲的數據庫,性能高,擴展性強,可靠性高。HBase的內容,存儲在HDFS上,固然它也可使用其餘的文件系統,如S3等。HBase做爲一個頂級項目,使用頻率很高。如:咱們能夠用來存儲,爬蟲爬來的網頁的信息等。具體的HBase的概念請見後續詳細說明。延遲較低。分佈式
Hive,是一個查詢的工具,在HBase中,對於SQL的支持不太好。而Hive解決了這一類的問題。以sql形式操做hbase,更爽一些。Hive編寫的一些sql語句,其實最後也仍是會變成MapReduce程序。固然這種查詢,不能與關係型數據庫mysql等比較,hive查詢時,是秒級或分鐘級的,時間比較長。工具
Sqoop,也是一個很神奇的數據同步工具。在關係型數據庫中,咱們會遇到一種情景,將Oracle數據導入到Mysql,或者將Mysql數據,導入到Oracle。那其實Sqoop也是相似的功能。sqoop能夠將Oracle,Mysql等關係型數據庫中的數據,導入到HBase,HDFS上,固然也能夠從HDFS或HBase導入到Mysql或Oracle上。oop
Flume,是日誌收集工具,是分佈式的,可靠的,容錯的,能夠定製的。應用場景如:100臺服務器,須要監測各個服務器的運行狀況,這時能夠用flume將各個服務器的日誌,收集過來。Flume也有兩個版本。Flume OG 和Flume NG。如今基本都用NG了。性能
Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數據。已有的Hive系統雖然也提供了SQL語義,但因爲Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以知足查詢的交互性。相比之下,Impala的最大特色也是最大賣點就是它的快速。Imapa能夠和Phoenix,Spark Sql聯繫起來了解一下。
Spark是一個內存計算的框架。目前一個大的趨勢。MapReduce會有很大的IO操做,而Spark是在內存中計算。速度是Hadoop的10倍(官網上這樣說的)。Spark是目前一個趨勢,是須要了解的。
Zookeeper,動物管理員。Zookeeper叫分佈式協做服務。做用主要是,統一命名,狀態同步,集羣管理,配置同步。Zookeeper在HBase,以及Hadoop2.x中,都有用到。
數據挖掘算法庫,裏面內置了大量的算法。能夠用來作預測、分類、聚類等。工具很強大,可是技術要求能力較高。
和Hive相似。具體區別本身搜搜。Pig能夠構建數據倉庫。可用來對數據倉庫中數據,進行查詢分析。Pig也有本身的查詢語法,很不幸,不是sql形式,Pig Latin。
Ambari是一個管理平臺。能夠對集羣進行統一的部署。也是很方便的。