2023-175,#每日一悟每日进步##大数据#
大数据平台的架构模式
1、Lambda架构
最成熟、最稳定的架构,核心思想是将批处理作业和实时流作业分离,各自独立运行,资源互相隔离。有三个层次:
(1)Batch Layer批处理层,主要负责所有的批处理操作,包含Hive、Spark-SQL或Map-Reduce等技术,数据处理依赖的主数据在该层维护;
(2)Serving Layer,以批处理层的结果数据为基础,对外提供低延时的数据查询和ad-hoc查询服务,本层既可以使用包括关系型数据库在内的传统技术,也可以使用Kylin、Presto、Impala或Druid等大数据OLAP产品;
(3)Speed Layer,使用流式计算技术实时处理当前数据,能以实时或近似实时的方式处理大量数据,但无法对全部历史数据进行操作,主要使用Storm、Spark Streaming或Flink等大数据流计算框架。
2、Kappa架构
是Lambda架构的简化,使用流计算技术统一批处理和实时处理两条数据处理的Pipeline。
在技术选型上一般需要这些组件:首先在前端需要有一个消息队列,如Kafka,其次在Kafka后接一个流计算框架,几乎所有的数据处理都会发生在流计算框架上,主流的流计算框架有Flink、Spark Streaming或Storm。
3、Smack架构
S、M、A、C、K分别代表了架构使用的5种技术:Spark、Mesos、Akka、Cassandra和Kafka。
Smack使用Akka进行数据采集,然后将数据写入Kafka,接着使用Spark Streaming进行实时流处理,处理结果和原始数据都写入Cassandra,核心是利用了Cassandra的多数据中心,将数据透明地冗余到两个Cassandra集群,一个集群专门用来接收流处理结果数据,另一个集群用于批处理分析,供Spark读写。
SMACK架构既支持批处理又支持实时处理,在数据处理层面只依赖Spark,在数据存储层面只依赖Cassandra,很好地统一了技术堆栈。