在去年曾經(jīng)列出了一張應(yīng)當(dāng)了解的Hadoop 知識(shí)清單。如今2015年也已經(jīng)少了兩個(gè)月,我認(rèn)為我現(xiàn)在應(yīng)當(dāng)檢查一下大家對(duì)Hadoop的了解情況,同時(shí)在清單內(nèi)容中增加一些技術(shù)。
首先,我希望大家不要忘記之前所掌握的基本內(nèi)容。與去年一樣,Yarn 和 HDFS在今年仍然很重要。我希望大家能夠記住這一生態(tài)圈中的東西。盡管許多人可能會(huì)認(rèn)為HBase和Cassandra與Hadoop無(wú)關(guān),但是實(shí)際上 HBase已經(jīng)變得極為關(guān)鍵,Cassandra也已經(jīng)被市場(chǎng)所接受。(如果你認(rèn)為自己的大腦空不夠用了,至少你可以在Pivotal出現(xiàn)后忘記HAWQ 或Greenplum的存在。)
目前,大家可能應(yīng)該對(duì)與Splice Machine類似的Phoenix有所了解,這些我在去年的清單中曾經(jīng)提到過(guò)。Phoenix實(shí)質(zhì)上是一個(gè)建在HBase之上的RDBMS,支持健全的 SQL子集JDBC和其運(yùn)作。雖然Phoenix的速度比Hive快,但是我并不認(rèn)為它們會(huì)取代Hive,因?yàn)镠ive目前仍然非常適合那些你不想遷移至 HBase但又想以其它方式進(jìn)行分析的平面文件。Pheonix由James Taylor開(kāi)發(fā),此人對(duì)那些以他名字所開(kāi)的玩笑并不反感。
如果之前大家沒(méi)有聽(tīng)從我的建議學(xué)習(xí)一些Spark和Storm的知識(shí),那么現(xiàn)在還來(lái)得及(注:你可以忘記Shark,轉(zhuǎn)而學(xué)習(xí)Spark SQL)。如今Spark正逐步被接受。當(dāng)人們?cè)谕痪湓捴刑峒?ldquo;實(shí)時(shí)”和“Hadoop”時(shí),那么這句話中可能也會(huì)提及“Storm”。雖然兩者有許多重疊之處,但是兩者在一些地方又各有長(zhǎng)處。
大家可能還應(yīng)當(dāng)對(duì)Kafka有所了解。如果大家正在使用JMS、AMQ或其它任何一種通知工具,那么都會(huì)對(duì)Kafka有所了解。如果你正在使用 Storm,那么你可能在使用Storm的大部分時(shí)間中都是通過(guò)Kafka來(lái)確定小的比特流是哪里消失,而不只是將其放在dev/null中。
如果認(rèn)為將數(shù)據(jù)從Hadoop A轉(zhuǎn)移至Hadoop B是在浪費(fèi)時(shí)間,認(rèn)為用Oozie來(lái)清理數(shù)據(jù)非常費(fèi)事,那么你可能會(huì)希望學(xué)習(xí)Falcon ,編寫(xiě)一套流處理程序。
雖然Ambari支持安裝Hadoop集群,但是這可能并不是你所期望的安裝、配置和重置大型集群的方式。此外,如果你有一個(gè)龐大的數(shù)據(jù)中心,并且不想指定哪些服務(wù)器只能用于批處理而不能用于流處理,那么該怎么辦?如果你只是想簡(jiǎn)單地將資源匯聚在一起,那么又該怎么辦?這時(shí)Mesos可能會(huì)成為你的救星。
如果有人要求你提升安全性,那么你或許可以使用Knox。它們對(duì)于Ranger來(lái)說(shuō)可能極為重要。在某種程度上,Ranger可能會(huì)導(dǎo)致所創(chuàng)建的Hadoop生態(tài)圈產(chǎn)生脫節(jié)的副作用。雖然有的理念認(rèn)為用戶是用戶,安全是安全,但是我認(rèn)為我們不應(yīng)該讓Hive、HBase、Storm、Knox彼此分離,而是應(yīng)當(dāng)讓它們有機(jī)地結(jié)合在一起。目前我們還不能太高興(+微信關(guān)注網(wǎng)絡(luò)世界),因?yàn)樗鼈冞€沒(méi)有實(shí)現(xiàn)這一功能。盡管文件還未完成,但是我們還是能夠在Hortonworks網(wǎng)站中找到許多相關(guān)的東西。
除了這些,我們還應(yīng)當(dāng)了解一些Hadoop之外的東西。如應(yīng)當(dāng)熟悉LDAP。我是意思是,雖然沒(méi)人喜歡活動(dòng)目錄,但是每個(gè)人都在用它,LDAP 則是實(shí)現(xiàn)對(duì)其整合的重要方式之一。不幸的是,Hadoop中最完整的安全模型是Kerberos。由于比較老,因此部署起來(lái)極為費(fèi)時(shí)。但是我們還是應(yīng)當(dāng)知道如何將它們從A點(diǎn)部署到B點(diǎn)再到C點(diǎn)。
此外,我還建議大家學(xué)習(xí)一下Docker,搞清楚Docker是什么。幸運(yùn)的是,如果你了解Solaris Zones是什么并且能夠想象打包的情況,那么你可能會(huì)很快地搞清楚Docker是什么以及它們能干什么。
最重要的是,大家需要學(xué)習(xí)一些關(guān)于機(jī)器學(xué)習(xí)的知識(shí)。通過(guò)預(yù)測(cè)性分析,它們能夠幫助大家進(jìn)行預(yù)測(cè)。此外,大家還應(yīng)當(dāng)掌握清單中從Mahout到MLib中的內(nèi)容,至少是了解這些技術(shù)和算法的基本原理。
最后,我希望大家在去年都在努力學(xué)習(xí)這些清單中的內(nèi)容,并且已經(jīng)做好了學(xué)習(xí)新增知識(shí)的準(zhǔn)備。我也希望Kerberos或是Phoenix沒(méi)有讓大家感到頭疼。Hadoop是一個(gè)正在不斷成長(zhǎng)的生態(tài)系統(tǒng),跟上它的成長(zhǎng)步伐是一種挑戰(zhàn),但是我相信大家能夠成功。