Lambda架构

Lambda架构


架构简介

Lambda架构 Lambda架构示意图

架构之组成

1. batch layer
Lambda架构
如图可知,优选是Hive和Pig,次选是Spark、Hadoop;

2. speed layer
Lambda架构
如图可知,优选是Spark Streaming和Strom,次选是Spring XD;

3. serving layer
Lambda架构
如图可知,优选是HBase和Druid,次选是SploutSQL;

由上可知,Lambda架构的组成可以有千百种方式,但其每一个layer的选择却是有限的;只需结合业务需求、然后在上述三幅图中选择即可。


Lambda架构的Demo

(官网给定的5个demo,但目前一个都没看懂-2018年9月4日)
Lambda架构具体的实现方式,网上开源的代码真的非常少,这也大大加重了实操的难度。

Demo1. 推特标签数量实时分析

batch layer = HDFS;
speed layer = Trident(a high level Storm);
serving layer = Splout SQL;

Demo2. 实时分析数据堆栈

data resource = Kafka;
batch layer = Hadoop;
speed layer = Storm;
serving layer = Druid;

Demo3. 洛杉矶公共交通数据实时分析

data resource = Kafka;
batch layer = Spark;
speed layer = Cassandra;
serving layer = Akka;

Demo4. 基于微软云分析公共会议流程
github项目地址:https://github.com/ANierbeck/BusFloatingData

data resource = ;
batch layer = ;
speed layer = ;
serving layer = ;

Demo5. 推特实时详尽分析

data resource = Kafka/Twitter4j;
batch layer = Spark;
speed layer = Spark-streaming/Cassandra;
serving layer = Akka/Akka-http;


我的Demo

暂时假定,
batch layer = Hive;
speed layer = Storm;
serving layer = HBase;搭建起一个local mode(本地集群)的demo

Storm集成HBase:
http://storm.apache.org/releases/2.0.0-SNAPSHOT/storm-hbase.html

完成日历:
2018年9月4日-开始学习Lambda架构思想,并阅读多个Hadoop组件的文档;
2018年9月11日-实现Kafka发出随机信息,并简单消费的Java工程;
2018年9月12日-实现Kafka数据导入hdfs,并用Hive QL查询。本来想用Java工程来实现,但是导入数据的方法大概有三种:kafka connect、Gobblin、利用Flume中间件。这三种方法都是直接在Linux上改写配置文件,就能实现数据从Kafka -> HDFS的过程,与我的本意不和;看来hadoop平台并不是所有的任务都可以用Java来实现;这个过程暂且不管了
2018年9月13日-在Hive中实现HQL对关键业务指标的查询,也可尝试用Java操作;