Hadoop框架中,有很多優(yōu)秀的工具,幫助我們解決工作中的問(wèn)題。

從上圖可以看出,越往右,實(shí)時(shí)性越高,越往上,涉及到算法等越多。
越往上,越往右就越火……

HDFS,(Hadoop Distributed File System) hadoop分布式文件系統。在Google開(kāi)源有關(guān)DFS的論文后,由一位大牛開(kāi)發(fā)而成。HDFS的建立在集群之上,適合PB級大量數據的存儲,擴展性強,容錯性高。它也是Hadoop集群的基礎,大部分內容都存在了HDFS上。
MapReduce,是Hadoop中的計算框架,由兩部分構成。Map操作以及Reduce操作。MapReduce,會(huì )生成計算的任務(wù),分配到各個(gè)節點(diǎn)上,執行計算。這樣就避免了移動(dòng)集群上面的數據。而且其內部,也有容錯的功能。在計算過(guò)程中,某個(gè)節點(diǎn)宕掉之后,會(huì )有策略進(jìn)行應對。Hadoop集群,上層的一些工具,比如Hive或者Pig等,都會(huì )轉換為基本的MapReduce任務(wù)來(lái)執行。
HBase源自谷歌的BigTable。HBase是面向列存儲的數據庫,性能高,擴展性強,可靠性高。HBase的內容,存儲在HDFS上,當然它也可以使用其他的文件系統,如S3等。HBase作為一個(gè)頂級項目,使用頻率很高。如:我們可以用來(lái)存儲,爬蟲(chóng)爬來(lái)的網(wǎng)頁(yè)的信息等。具體的HBase的概念請見(jiàn)后續詳細說(shuō)明。延遲較低。
Hive,是一個(gè)查詢(xún)的工具,在HBase中,對于SQL的支持不太好。而Hive解決了這一類(lèi)的問(wèn)題。以sql形式操作hbase,更爽一些。Hive編寫(xiě)的一些sql語(yǔ)句,其實(shí)最后也還是會(huì )變成MapReduce程序。當然這種查詢(xún),不能與關(guān)系型數據庫mysql等比較,hive查詢(xún)時(shí),是秒級或分鐘級的,時(shí)間比較長(cháng)。
Sqoop,也是一個(gè)很神奇的數據同步工具。在關(guān)系型數據庫中,我們會(huì )遇到一種情景,將Oracle數據導入到Mysql,或者將Mysql數據,導入到Oracle。那其實(shí)Sqoop也是類(lèi)似的功能。sqoop可以將Oracle,Mysql等關(guān)系型數據庫中的數據,導入到HBase,HDFS上,當然也可以從HDFS或HBase導入到Mysql或Oracle上。
Flume,是日志收集工具,是分布式的,可靠的,容錯的,可以定制的。應用場(chǎng)景如:100臺服務(wù)器,需要監測各個(gè)服務(wù)器的運行情況,這時(shí)可以用flume將各個(gè)服務(wù)器的日志,收集過(guò)來(lái)。Flume也有兩個(gè)版本。Flume OG 和Flume NG?,F在基本都用NG了。
Impala是Cloudera公司主導開(kāi)發(fā)的新型查詢(xún)系統,它提供SQL語(yǔ)義,能查詢(xún)存儲在Hadoop的HDFS和HBase中的PB級大數據。已有的Hive系統雖然也提供了SQL語(yǔ)義,但由于Hive底層執行使用的是MapReduce引擎,仍然是一個(gè)批處理過(guò)程,難以滿(mǎn)足查詢(xún)的交互性。相比之下,Impala的最大特點(diǎn)也是最大賣(mài)點(diǎn)就是它的快速。Imapa可以和Phoenix,Spark Sql聯(lián)系起來(lái)了解一下。
Spark是一個(gè)內存計算的框架。目前一個(gè)大的趨勢。MapReduce會(huì )有很大的IO操作,而Spark是在內存中計算。速度是Hadoop的10倍(官網(wǎng)上這樣說(shuō)的)。Spark是目前一個(gè)趨勢,是需要了解的。
Zookeeper,動(dòng)物管理員。Zookeeper叫分布式協(xié)作服務(wù)。作用主要是,統一命名,狀態(tài)同步,集群管理,配置同步。Zookeeper在HBase,以及Hadoop2.x中,都有用到。
數據挖掘算法庫,里面內置了大量的算法??梢杂脕?lái)做預測、分類(lèi)、聚類(lèi)等。工具很強大,但是技術(shù)要求能力較高。
和Hive類(lèi)似。具體區別自己搜搜。Pig可以構建數據倉庫??捎脕?lái)對數據倉庫中數據,進(jìn)行查詢(xún)分析。Pig也有自己的查詢(xún)語(yǔ)法,很不幸,不是sql形式,Pig Latin。
Ambari是一個(gè)管理平臺??梢詫哼M(jìn)行統一的部署。也是很方便的。
聯(lián)系客服