【大數據與λ-結構】Nathan Marz自2012年提出λ-結構以後,2015年又出版了《大數據》,書中堅持認為要達到實時、分布式、準確的大數據運算,從而能克服所謂的CAP定理的約束,帶λ-結構的計算平台是唯一最好的選擇。
我化了一段時間,對比了業界公布的十幾家公司的λ-結構的各種實現後,開發了基於開源碼的λ-結構原型。在此基礎上,並整合了R、Spark、H2O、Neo4J、Mahout、Oryx2等一系列機器習得的開源軟件包(結構附圖略)。
這是個功能非常全面的基於λ-結構的,可對機器習得進行開發和運作的平台原型。已經將其打包成三個publicly available docker-ized images (https://hub.docker.com/r/certxg/lambda/),ready to be deployed to a distributed server farm of any size.
當今業界對於機器習得的應用正方興未艾。但以往的算法,比如R的上千種算法,都不是分布式運算的。它們只能在小數據上搞搞試驗,做做演示或者教學示範,對大數據無能為力。所以,λ-結構的使用,將是個必然。
然而,現有的λ-結構都有個主要問題:它們內部的各部件之間太複雜,開發維護運轉都很麻煩。最好能大大簡化。
比如Spark就在這方面化了大力氣,使得H2O和Mahout都決定採用Spark來簡化λ-結構。
但這也帶來一些trade-off,特別是用Spark streaming取代Trident streaming時,會影響整個糸統的實時性。儘管兩者都用了micro-batching,但一個是基於時間間隔的polling,另一個卻是基於實時的響應,快慢很有差別。
我現在正在做兩件事:用Spark來簡化λ-結構,並實現一個機器習得的應用。細節將在以後介紹。
|