我曾在 Gigaom 網站上花了很多時間討論 Hadoop,并長期關注 Hadoop 項目及其背后公司的發展情況。因此,在過去一年親眼見證項目逐步從人們視野中消失之后,我開始思考到底出了怎么狀況。在去年 10 月 Cloudera-Hortonworks 宣布合并時,我就做出過思考,但內容還不太完善。希望今天的文章能夠真正系統地論述這個議題。
近十年來, Hadoop 一直是“大數據”領域的典型代表。它新鮮,它開源,它催生出整個產品與供應商市場,而它的靈感則來自技術培訓領域各大最強網站的實際運營狀況。然而,現在回顧起來,Hadoop 似乎永遠無法達成其崇高的發展愿景。雖然 Hadoop 項目仍然又大又新,但如今的世界已經快速轉至更重視速度、靈活性、微觀要素甚至是已知數量的階段。
Hadoop 當初選擇了全面普及的道路,并與其它一系列技術產生了交叉與重合;從長遠來看,這條道路有助于其提高自身影響力,但負面因素則是導致其逐漸偏離當初做出的最具價值的承諾。Hadoop 的故事可以幫助我們理解為什么現今的數據世界會呈現出這樣的面貌,同時也能夠給任何打算深入探索企業 IT 發展趨勢的朋友們帶來寶貴教訓。下一個大事件會是什么?答案也許就在其中。
如今,熱錢滿天飛,企業探索技術并掌握技術的壓力如此之大(又稱數字化轉型),人們自然傾向于將每一件新事物都視為有可能產生重大影響的潛在重點。這是一種極高的要求,但組織中的決策者必須得透過炒作看清這些事物所做出的承諾與其實際能夠達成的目標之間的界線。以此為基礎,我們才能正確選擇最適合自身發展需求的技術方案。
總有更多空間可供挖掘……
誠然,每個人都希望獲取(目前也仍然希望)Hadoop 最初承諾的能力。他們希望從網絡日志、天氣記錄以及其它相對新穎的資源當中收集大量非結構化數據,對其加以分析并發現新的趨勢或者獨特的業務洞察能力。很多高管都希望實現數據驅動目標,幫助自己擺脫那些討厭的直覺以及定性證據的影響。在大數據發展之初,這樣的目標甚至可以說是整個新生行業為自己定下的奮斗原則。
當時有句口號,叫作發掘“數據不合理性中的價值”。企業 IT 終于有望從數據中汲取養分,這一切終于不再是谷歌公司的專利。
然而,大數據世界中發生的諸多事件一步步侵蝕了 Hadoop 分布式文件系統(HDFS)的基礎,以及用于運行 MapReduce(最初的 Hadoop 編程模型)任務的計算引擎。好吧,整個過程其實相當復雜,下面我就盡可能精簡一下:
功能機發展為智能機,并開始產生大量實時數據流。 社交網絡全面起飛并開始生成實時數據流。成本低廉的傳感器與物聯網迅速發展,這也成為新的實時數據來源。遺憾的是,“MapReduce”與“實時”往往扯不上什么關系。
企業已經在關系數據庫與數據倉庫技術身上投入了數十億美元,而且這些技術目前的運作效果仍然不錯。更重要的是,技術人員已經對 SQL 相當熟悉。
以 Apache Spark 為代表的競爭性、或者說是替代性項目開始持續涌現, 這些來自企業、大學以及網絡公司的新興方案也成功超越了大數據整體理念中的種種早期限制。
風險資本流入大數據初創企業。其中包括圍繞 Hadoop 建立自己的初創企業,也包括各類新興項目與相關技術。雖然理論上,參與各方都在朝著同一個方向邁進,但在發展業務的過程中,具體激勵因素有時并不一致。
我完全理解 Hadoop 社區做出的選擇:他們與盡可能多的技術進行集成,并構建起一個業務流程層,以便在大型共享基礎設施當中調度各類不同部分中的作業。正因為如此,我們得到 Pig、Hive、SQL-on-Hadoop 以及 YARN,同時也迎來了 Storm、Kafka 以及 Spark 等的加入。盡管 Hadoop 仍然非常復雜且難以操作,但它還是成功發展成了一套真正的數據平臺。
技術無法在真空中存在
與此同時,其它一些重要的事件正在發生;雖然有一些看似與大數據領域無關人,但卻給 Hadoop 乃至整個大數據社區帶來重要影響。從本質上講,我們在如何獲取技術以及如何設計應用程序這個問題上,經歷了幾次重大的集體理解轉變:
作為新的企業 IT 主流解決方案,開源趨勢正在全面普及。因此,用戶對于易用性以及開箱即用功能的期望也開始增加。各類熱門項目開始在 Apache 軟件基金會以及其它傳統開源社區之外茁壯成長。
云計算統治整個世界,現在我們不僅能夠輕松構建虛擬配置服務器,還能夠以更低的成本存儲大量數據,并使用管理服務處理特定用例——例如,通過 MapReduce 進行數據處理。
Docker 與 Kubernetes 的誕生。二者的到來,共同開啟了人們對于應用程序及基礎設施打包與管理的新思路。更重要的是,二者的模塊化設計吸引到各大社區的高度關注,意味著用戶們能夠隨意交換不同的部分或者特定功能,同時保證新功能快速上線。
深度學習將人工智能與機器學習牽引至聚光燈下。 在基礎設施之外,圍繞深度學習的討論主要集中在如何使模型與算法進行復雜的模式識別,且確保我們無需對其中的參數或內容進行手動調整。沒錯,在生產環境中引入 AI 絕不像“添加數據”那么簡單,但人們更熱衷于談論其中的商業機會——畢竟這件事的門檻至少要比討論集群規模要低一些,也更有吸引力一些。
微服務成為現代應用程序中的客觀架構標準,隨后則出現了“無服務器”計算與函數。二者的誕生主要是為了支持事件驅動型架構這一思路——簡單來說,就是當事情 A 發生時,服務 B 自動做出響應。
現狀:事件、AI 以及“即服務”
這些因素匯集起來,共同成就了我們當前面對的客觀現狀。沒錯,Hadoop 仍然存在且不斷發展,但卻已經越來越不可能成為很多人當初預測的那種不可或缺的基礎性技術。相反,大多數社區開始采用更快、模塊化程度更高且更為簡單的工具與平臺集合,并將數據作為應用程序架構中的一種組成部分——而非單純有待分析的素材。
具體來講,我們現在觀察到了以下趨勢:
流數據與事件驅動型架構越來越受歡迎。雖然其背后的基本思路已經擁有一定歷史,但如今的技術與架構進步真正將其轉化為現實,包括流處理甚至是基于函數(又稱「無服務器」)計算。在大多數情況下,快速處理數據的能力要比批量處理數據或者對歷史數據進行分析等方法更具價值。
Apache Kafka 正成為越來越多數據架構中的神經系統。Kafka 不僅能夠提供上述多種功能,同時爆棚的人氣也使其成為各類項目與技術供應商的優先選擇。Kafka 開始成為一切其它數據功能不可忽視的核心平臺(只要啟動并運行 Kafka,它就能夠完成將數據導入 Hadoop 及其它批處理系統的工作)。
云計算已經在基礎設施、存儲、數據分析以及 AI 服務等領域占據主導地位。Amazon S3 等數據存儲服務在使用感受上,要比管理復雜的文件系統更輕松也更便宜。云服務供應商帶來大量能夠對全部數據進行分析與建模的現成方法,包括人工智能以及機器學習等功能。對于相當一部分(雖然不是全部)企業而言,管理自有數據基礎設施與應用程序的弊端,已經大大超過收益。
關系數據庫——包括數據倉庫——仍然擁有旺盛的生命力, 其它一些數據庫選項(例如 Postgres)也在蓬勃發展。由云服務帶來的操作便捷性(甚至可以說是無需操作)無疑是這些方案得以復興的重大因素;此外,眾多受到 Hadoop、NoSQL 以及過去十年來各類數據技術影響的新功能也在持續涌現。
Kubernetes 正成為面向所有內容的默認業務流程層,其中自然包括數據系統與 AI。這緩解了市場對于 Hadoop 類數據編排平臺(例如 YARN)的需求,同時鼓勵用戶采用更符合云原生價值主張的技術(簡而言之,就是以微服務架構取代整體式架構,以大量小集群取代單一大型共享集群)。
雖然跨越眾多服務與技術開發數據架構仍然相當困難,但如今的工具確實帶來了諸多優勢——這些優勢,已經遠遠超越單一、整體式平臺的供應范疇。工程師們可以隨意使用自己熟悉以及喜愛的工具;隨著更多新生事物的出現,他們也能夠更輕松地進行實驗,并非常自信地將它們整合起來發揮更大的作用。更重要的是,他們也可以借此讓業務需求成為新技術采用的原動力,最終打破技術決策限制業務可行性的陳舊怪圈。
Hadoop 讓人們了解到大數據中蘊藏的無限可能,但同時也提醒人們,沒有任何單一技術有能力重塑整個企業 IT 世界——至少以后不會再有。
作者:Derrick Harris
譯者:核子可樂
原文鏈接:https://architecht.io/what-happened-to-hadoop-211aa52a297








