聊聊大数据Lambda架构

发表于:2019-6-12 10:06  作者:软件架构   来源:今日头条

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签:

  Lambda Architecture 概念
  Mathan Marz的大作Big Data: Principles and best practices of scalable real-time data systems介绍了Lambda Architecture的概念,用于在大数据架构中,如何让real-time与batch job更好地结合起来,以达成对大数据的实时处理。
  
  大数据平台中包括批量计算的Batch Layer和实时计算的Speed Layer,通过在一套平台中将批计算和流计算整合在一起。
  例如使用Hadoop MapReduce、Spark进行批量数据的处理,使用Apache Storm、Spark Streaming 进行实时数据的处理。
  这种架构在一定程度上解决了不同计算类型的问题,但是带来的问题是框架太多,会导致平台复杂度过高、运维成功高等。
  Lambda架构的主要思想就是将大数据系统构建为多个层次,如下图所示:
 
  我们来梳理一下他们是如何分工协助的:
  首先new data作为整个数据系统的数据源头,Batch Layer作为数据的批处理层次对原始数据进行加工与处理,并且将处理的数据结果的Batch View输入到Serving Layer。(这里对应的是全量数据)
  Speed Layer对于实时增加的数据进行处理,生成对增量数据计算结果的Real-time View。(这里对应的是增量数据)
  最终用户查询是通过Batch View与Real-time View相结合的形式将最终结果呈现出来。
  基于Lambda架构,一旦数据通过Batch layer进入到Serving layer,在Real-time view中的相应结果就不再需要了。
  小 结
  Lambda架构结合了实时处理与批处理的结果,很好的反馈了查询需求,并且在速度和可靠性之间求取了平衡,具有足够的扩展性。理想状态下,所有的查询都可以定位成一个函数:
 Query = Function(Data)
  但是,若数据达到相当大的一个级别(例如PB),且还需要支持实时查询时,就需要耗费非常庞大的资源。
  而Lambda架构将数据和计算系统进行细分:
  Query = Batch(Old_Data) + RealTime(New_Data)
  但是这种架构同样存在一些问题:需要运维两套不同的计算系统,并且合并查询结果,这一定程序上带来了复杂性的增加。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

【调查报告】你以为的测试行业现状,其实是这样的!

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道