Hadoop已死?Hadoop萬歲!
各種博客文章、雜志投稿中,“Hadoop已死”的說法死灰復燃,且又開始甚囂塵上。近年來,Cloudera不再滿足于Hadoop開源平臺的身份,轉而以企業數據公司的身份進行營銷。如今,Cloudera已經進入企業數據云市場:混合云/多云服務,統一的安全體系和管理,多功能分析——都得益于Hadoop的開源服務。
話雖如此,在“Hadoop已死”這一負面論調的汪洋大海中航行,還是困難重重。
Hadoop是什么?
首先,從最基本的層面來講——Hadoop最初是Apache 軟件基金會的一個開源項目。后來,Map/Reduce 和 HDFS也分別被納入這一項目中,很快就形成了一個廣泛而豐富的開源生態系統。如今,Cloudera的“Hadoop發行版”(CDH/HDP/CDP)包含30多個開源項目,涵蓋存儲、計算平臺(例如YARN,以及未來的Kubernetes)、批處理/實時計算框架(Spark、Flink等)、編排、SQL、NoSQL、ML、安全/管理等等。
所以,如果把Hadoop僅僅定義為MapReduce,那么,MapReduce的確正在衰落。但這并不妨礙Spark、Flink以及其他技術的興起——這使客戶感到高興。這就是平臺的美妙和強大之處——它可以進化,可以擁抱新的范式。
那么,如果Hadoop不是一個“項目”或“一組項目”,它又是什么呢?
“Hadoop”是一種哲學——是一場運動,是管理和分析數據的現代化體系結構的發展。
“Hadoop 哲學”
“Hadoop 哲學”始終遵循以下原則:
1. 轉向分解軟件堆棧,將每一層(存儲、計算平臺、批處理/實時/SQL計算框架等)構建為可組合的樂高積木,而不是單一且不靈活的軟件棧(例如以垂直方式整合的具有定制存儲格式、解析器、執行引擎等的數據庫。
- 尤其是,通過建立開放的元數據、安全和管理平臺來協調分解的堆棧,有助于實現這一點。
2. 轉向用于大型分布式系統的商品硬件,而不再是專有/單片硬件+軟件堆棧。
- 在經濟學理論中,商品被定義為一種物品或服務,具有充分的可替代性和廣泛的可獲得性,這通常會導致較小的利潤率,使價格以外的因素(如品牌)變得并不那么重要。
- 請參閱下面的討論,了解商品硬件在架構上如何很好地轉化為公共云。
3. 轉向利用開放數據標準和開源技術,而不是專有的、供應商控制的技術。這不僅僅是開放標準——標準是實現,而不僅僅是“規范”。
4. 轉向靈活多變的技術生態系統(MRv1 -> YARN -> K8s, MapReduce -> Spark/Flink等),而不是對所有的整體堆棧一刀切,從而在每一層都能實現創新。
從某種層面來說,“Hadoop哲學”對于數據架構來說,就像著名的Unix 哲學對于軟件開發一樣,Eric Raymond在其著作《Unix編程藝術》中闡述了17條Unix規則,同樣適用于該領域:
1. 模塊原則:使用簡潔的接口拼合簡單的部件。
• HDFS, YARN/K8s, Spark, Hive等既可以相互組合,又相互依賴。
3. 組合原則:設計時考慮拼接組合。
• Impala,Hive, Spark等可用于端到端的解決方案。
4. 分離原則:策略同機制分離,接口同引擎分離。
• HDFS既是文件系統接口,也是文件系統實現。這就是Spark通過Hadoop兼容文件系統“API”與S3對話的原因。
6. 吝嗇原則:除非確無它法,不要編寫龐大的程序。
• 避免出現“大”而“胖”的層,而是使用依賴于其他層的模塊化層,例如Phoenix和HBase。
7. 透明性原則:設計要可見,以便審查和調試。
• 開源FTW!
16. 多樣原則:決不相信所謂“不二法門”的斷言。
• Hadoop生態系統提供了多種工具,因為它們適用于不同的場景,并且具有不同的優勢(可以通過Spark或Hive實現ETL,通過Hive/Tez或Impala實現SQL,通過LLAP或SparkSQL實現SQL)。
17. 擴展原則:設計著眼未來,未來總比預想來得快。
• 在2005-2006年時,很難預測到HBase, Hive, Impala, Spark, Flink, Kafka等產品的出現,但在過去13年多的時間里,它們成為了高質產品和堆棧的關鍵組件,這已經是很好的成果了。
云是什么呢?
如今,公共云(以及私有云)顯然將成為企業部署體系結構中不可或缺的一部分。
公共云本質上就是企業硬件基礎設施(服務器、網絡、數據中心等)的商品化。因此,它完全符合Hadoop哲學的原則——專注于商品硬件。此外,整個Hadoop生態系統一直都是為了“變形”和吸收新影響而構建的——Tom White在2006年編寫了第一個S3-Hadoop連接器,Amazon在2009年引入了EMR服務。
與此相比,傳統數據庫供應商很難分解單個的、高度工程化、融合一體化的硬件/軟件堆棧,并使它們在公共云中進行“本地化”工作。
不幸的是,就整個行業來說,沒能很好的幫助市場(尤其是金融市場)理解Hadoop與傳統技術在公共云方面的區別。這值得思考,且亟待改善。
亞馬遜的 EMR、Azure的HDInsight,以及谷歌的Dataproc都是很好的例子,能夠很好地說明“Hadoop”是如何在客戶群的公共云中大規模推動巨頭價值和業務的。
Cloudera是什么?
Cloudera是一家數據公司。這家公司能夠將數據轉化為清晰且可操作的觀點,這主要是通過“Hadoop哲學”來實現的。我們建立了這個市場——為自己的過去感到驕傲,但并沒有被蒙蔽。我們借力于技術浪潮(公共云、Kubernetes等),這不僅有益于客戶,也符合公司的使命。
即使再過一百年,企業依然會希望將數據轉化為觀點。這是我們正在做的,并將持續做下去。
有些事情確實發生了改變——這需要引起注意。五年前,當我們還是IT技術時,就獲得了通行證。所有的酷小孩都想和我們一起玩,把他們能找到的所有用例分享過來,還向他們的朋友們炫耀我們。在某種程度上,當時的主流情緒是“已經知道答案是Hadoop——那么問題是什么?”。這導致在產品生命周期的早期出現了一些不合理的、不切實際的期望。現在我們需要努力去說服客戶,才能讓其使用我們的產品,但是帶給他們的價值和理念是毋庸置疑的。我們還需要說服客戶使用如CDP之類的技術。但他們今天確實在與我們合作,正如他們在集體平臺上運行的數千BP的數據和數百萬分析程序所證明的那樣!
本質上,通過參與用戶和企業存儲/管理/保護/控制/分析數據的用例,我們將繼續蓬勃發展。隨著“Hadoop已死”的說法重現又消退,我們會被誤解,也愿意被誤解一段時間——因為我們重視結果。所有偉大的公司都會時不時的被誤解,堅持到最后就是勝利者。
Gartner分析師Merv Adrian喜歡講述這樣一個故事,一個客戶說他最喜歡的“Hadoop應用程序”就是在S3中使用了帶有Spark的Tensorflow。Merv問他為什么選擇Hadoop,他回答是因為Hadoop團隊創建了它。而且,使用的Spark來自Hadoop發行版。因此,Merv指出:“通常,旁人才能看出Hadoop的價值所在。”
CDP的基本目標是確保使用云服務能讓企業更容易從平臺獲得價值,而無需處理技術的復雜性。尤其是,使用CDP提供的用于數據倉庫和機器學習的本地SaaS式服務經驗,使得業務用戶能夠輕松分析存儲在云空間中的數據。此外,SDX使得使用ABAC和細粒度策略跨存儲在對象存儲和on-prem HDFS中的數據建立完全安全的數據湖變得非常簡單,還提供了用于治理和加密(存儲和在線)的來源和沿襲。在這方面取得的進展令人興奮——正如從許多企業客戶反饋中看到的那樣!
那么,Hadoop已經死去了嗎?
對Hadoop舊的認知已經過時了——塵埃落定。Hadoop作為一種理念,正在推動著開源技術生態系統和開放數據標準不斷發展,使人們能夠將數據轉化為觀點,這種理念是鮮活而持久的。
只要有數據,就會有Hadoop。
Hadoop的舊理念已死。Hadoop的新理念長青。