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