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