【大数据与λ-结构】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来简化λ-结构,并实现一个机器习得的应用。细节将在以后介绍。
|