Hadoop究竟是什么,對(duì)于這個(gè)問題答案或許很多人并不了解,筆者不僅也要問:到底這個(gè)“火起來(lái)”的開源技術(shù)有何魅力?通過(guò)進(jìn)一步的學(xué)習(xí)和了解,介紹一下什么是Hadoop,希望通過(guò)本文大家對(duì)Hadoop有清晰的認(rèn)識(shí)。
提及Hadoop有著眾多版本的說(shuō)明,其實(shí)是早年雅虎搜索工程師Doug Cutting開發(fā)出這個(gè)用以創(chuàng)建分布式計(jì)算機(jī)環(huán)境的開源軟件庫(kù),并以自己兒子的大象玩偶為其命名,誰(shuí)能想到如今占據(jù)“大數(shù)據(jù)”熱門首選技術(shù)。
維基百科
查詢維基百科,簡(jiǎn)單來(lái)說(shuō)Hadoop是Apache軟件基金會(huì)所研發(fā)的開放源碼并行運(yùn)算編程工具和分散式檔案系統(tǒng),支持?jǐn)?shù)據(jù)密集型分布式應(yīng)用程序,在Apache v2許可認(rèn)證下,Hadoop框架透明地為應(yīng)用程序提供可靠性與數(shù)據(jù)移動(dòng)保障。Hadoop實(shí)現(xiàn)了一個(gè)被稱為map/Reduce的計(jì)算模型,在這個(gè)計(jì)算模型中應(yīng)用程序被分為很多的小塊,每一塊都能在集群中的任意節(jié)點(diǎn)上執(zhí)行或重新執(zhí)行。另外,它還提供了一個(gè)分布式文件系統(tǒng)(HDFS)來(lái)在計(jì)算節(jié)點(diǎn)上存儲(chǔ)數(shù)據(jù),為集群提供了非常高的聚合帶寬。
可見,之前談到Hadoop,業(yè)界總與MapReduce放在一起,但其實(shí)HDFS和MapReduce一樣都是Hadoop的基礎(chǔ)。既然如此,Hadoop屬于開源技術(shù)是否免費(fèi)提供應(yīng)用?筆者了解軟件的安裝部署是需要付費(fèi),由于Hadoop在管理工具與支持服務(wù)方面的不足,企業(yè)在使用過(guò)程中很容易產(chǎn)生額外費(fèi)用。另外,由于它沒有優(yōu)化程序,專業(yè)運(yùn)行環(huán)境中人工輸入代碼費(fèi)用不菲,更不用提部署Hadoop集群的硬件和相關(guān)配置的成本。
“大數(shù)據(jù)”首選技術(shù)Hadoop(來(lái)源hadoop)
正如上面談到,Hadoop有數(shù)據(jù)應(yīng)用上的優(yōu)勢(shì),HDFS和MapReduce都是基礎(chǔ),但并不容易部署與實(shí)施,其實(shí)如今針對(duì)Hadoop開源技術(shù)推廣,市場(chǎng)開發(fā)應(yīng)用上主要有兩個(gè)圈子:一個(gè)是做算法、分析的圈子,另外一個(gè)是做架構(gòu)、設(shè)計(jì)的圈子,如何把這兩個(gè)圈子技術(shù)有效的結(jié)合產(chǎn)生應(yīng)用是大數(shù)據(jù)的突破點(diǎn)。
了解到Hadoop的技術(shù)特點(diǎn)和應(yīng)用部署問題,很多人最大的疑惑是Hadoop技術(shù)未來(lái)真正的價(jià)值是什么?從技術(shù)特點(diǎn)上來(lái)說(shuō),之前提到Hadoop由采用Hadoop分布式文件系統(tǒng)(HDFS)的可靠數(shù)據(jù)存儲(chǔ)服務(wù),以及MapReduce技術(shù)的高性能并行數(shù)據(jù)處理服務(wù)是其優(yōu)勢(shì)所在。這里簡(jiǎn)單說(shuō),Hadoop的技術(shù)對(duì)復(fù)雜數(shù)據(jù)的快速、可靠分析變?yōu)樯虡I(yè)價(jià)值的基礎(chǔ)。
Hadoop子項(xiàng)目
而對(duì)于Hadoop來(lái)說(shuō),盡管提供了數(shù)據(jù)存儲(chǔ)和并行處理平臺(tái),但其真正的價(jià)值來(lái)自于添加件和功能,以及Hadoop Common、Chukwa、HBase、Hive、Pig和ZooKeeper這項(xiàng)技術(shù)的增加功能性和新能力的子項(xiàng)目實(shí)現(xiàn)。
從關(guān)系結(jié)構(gòu)看,Pig是一種編程語(yǔ)言,可加載數(shù)據(jù)、表達(dá)轉(zhuǎn)換數(shù)據(jù)以及存儲(chǔ)最終結(jié)果,它簡(jiǎn)化了Hadoop常見的工作任務(wù)。而Hive在Hadoop中扮演數(shù)據(jù)倉(cāng)庫(kù)的角色。Hive添加數(shù)據(jù)的結(jié)構(gòu)在HDFS,并允許使用類似于SQL語(yǔ)法進(jìn)行數(shù)據(jù)查詢。
談到區(qū)別,Hive更適合于數(shù)據(jù)倉(cāng)庫(kù)的任務(wù)。Pig在大數(shù)據(jù)集領(lǐng)域更多的靈活性,相比Hive直接使用Hadoop Java APIs可大幅削減代碼量。
Hadoop子項(xiàng)目說(shuō)明
最左側(cè)的Ambari項(xiàng)目是最新加入Hadoop,旨在幫助系統(tǒng)管理員部署和配置Hadoop,升級(jí)集群以及監(jiān)控服務(wù)。而ZooKeeper最大的功能是協(xié)調(diào),隨著越來(lái)越多的項(xiàng)目加入Hadoop生態(tài)系統(tǒng)的一部分,集群成員通過(guò)ZooKeeper功能進(jìn)行彼此同步并了解訪問服務(wù)和配置。
由此,從概念、架構(gòu)到子項(xiàng)目,筆者感覺Hadoop盡管應(yīng)用于分布式環(huán)境,其開放的生態(tài)系統(tǒng)如同Linux一樣,各個(gè)IT廠商通過(guò)集成和測(cè)試Apache Hadoop的組件,并添加廠商自身的工具和管理功能來(lái)不斷擴(kuò)展Hadoop生態(tài)環(huán)境??梢?,廠商既成為開源Hadoop項(xiàng)目的代碼和功能貢獻(xiàn)者,又同時(shí)把不同模式帶到實(shí)際的業(yè)務(wù)應(yīng)用中,結(jié)合自己的產(chǎn)品提供大數(shù)據(jù)解決方案。