Lambda架构

业务需求

很多业务场景需要大数据系统既可以处理历史数据,又可以进行实时计算。比如电商推荐系统,当你在京东浏览商品时,京东会根据你的浏览、加车、收藏、删除等行为,实时为你推荐商品。要实现这个功能,推荐引擎首先需要根据历史数据预先离线计算推荐模型,然后从消息队列中实时拉取用户行为数据,结合两者,实时生成推荐结果;再比如智慧交通系统,需要对未年检、未报废等危险车辆进行实时预警,这就要求该系统预先根据历史数据删选出未年检或未报废的车辆信息库,然后将道路上实时获取到的车辆信息与车辆信息库进行对比,判断有没有违章车辆。

架构介绍

  Lambda架构实际上只是一种架构模型,用来指导大数据应用架构的搭建。其核心思想是批流结合,同时发挥批处理和流计算的优势对外提供一个统一的结果,系统架构被划分为三层:批处理层(Batch Layer)、实时计算层(Speed Layer)和服务层(Serving Layer)。批处理层对全量的历史数据进行批量计算,实时计算层对增量数据进行实时计算,服务层在逻辑上统一了两种数据源的接口,让应用能够以一个统一的数据视图来开发和部署,从而达到数据和应用的融合;
  在每个Layer的实际设计中,开发人员可以根据自身的需求来选择合适的组件或者产品来构建相应的系统,目前有很多开源组件可以用于构建此类系统,如Storm/Spark Streaming/Flink可以用来构建Speed Layer,Spark/MapReduce可以用于构建Batch Layer,HBase/Redis/MongoDB可以用于存储。
Lambda架构
参考:

  1. https://ask.hellobi.com/blog/transwarp/5107