数据湖大数据处理之Lambda架构

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 作者:孟亚斌

一、简介

(一)DataStax公司

DataStax 公司长久以来被人们认为是Apache Cassandra的商业公司,在C*项目的早期,DataStax公司贡献了85%以上的代码,DataStax也是近年代码的主要贡献者,占比在40-50%左右。

最近几年,DataStax专注于把 Cassandra数据库做成云原生的数据服务平台,简称C*-as-a-serviceDataStax还推出了很多产品来帮助 Cassandra社区程序员开发,如开源的数据API网关。

 

二、大数据,数据湖,和Lambda架构简介

(一)大数据

图片 1.png

如上所示,近年来大数据的特性主要可以总结为5V5V特性如下。

l 5V定义/特性

1)体量/规模(volume)

Zetabyte (1021) era

2)速度(velocity)

物联网,移动程序,社交软件,流处理。

3)多样性(variety)

结构化,半结构化,无结构

4)准确性(veracity)

5)价值(value)

近些年来一个比较通用的对大数据特性的一个定位,体现在5v上,这代表是5个英文单词的首字母都是V字母v比如说体量和规模是volumevelocityvarietyveracityvalue

 

(二)数据湖

2.png

l  所有企业数据的集合

1)数据源和格式的多样性

数据的原始格式

2)海量数据

量大,生成速度快

l  企业数据湖架构

1)大数据获取、处理、存储和使用的框架

2)大数据技术(水平扩展和高弹性)

数据湖可以从两个层面去理解。第一个是较静态的含义,指一个企业所有数据的集合,它反映了大数据的每个方面,数据来源的多样性,数据格式的多样性,巨大的数据体量以及数据快速生成等,这些都是大数据的典型特性。

更重要的一点是,它指一个比较动态的从端到端的数据处理框架,从原始数据开始,然后到基本的数据处理,然后把它存储到企业的中心的数据库里面,接着做进一步的分析处理,产生商业决策的信息,进而让下游系统利用,数据可视化的商业智能数据科学人工智能等。

所以从整个数据的生成到最后数据被系统利用起来,整个数据处理环节可以认为是一个企业数据库很关键的组成部分。

3.png

l  快数据

1)大数据不仅仅“大”,而且“快”

2)GB/秒或TB/

3)“新鲜”数据挖掘

批处理模式没法满足要求

近年来,当人们讨论大数据的时候,经常把重点放在“快”。这个“快”不仅意味着数据是以很快的速度生成,更多意义着整个数据的处理、分析、提取,然后最后到生成数据决策信息,整个过程是近乎实时的。

 

(三)Lambda架构

4.png

l  批处理层

1)主数据管理(Single source of Truth

原始数据(raw data

不可更改的(immutable

追加更新(append only

数据准确(externally true

2)批处理视图预处理

预处理策略

l  速处理层:

1)处理新添加的数据

2)弥补批处理视图和新加数据之间的差距

l  服务层:

低延迟数据查询

高容错性(硬件问题,人为失误)

低延迟读和写(OLTP and OLAP

线性拓展

易延展性

Lambda架构是较为通用且结构较好的架构,它主要有三层。

第一个是批处理层,它和传统数据仓库的批处理概念基本一致。

第二个是速处理层,许多平台所面临的问题是对实时数据的处理分析和挖掘,它的缺点是无法像批处理层一样处理大量历史数据,所以它更侧重于分析,利用传统批处理层的方式去处理历史数据。

第三个是服务层,它包括了很多不同的数据视图,这些数据视图可以从批处理层来,也可以从实时处理层来。这些这些数据视图主要是能帮助我们在企业的数据库的分布式企业数据库、环境里面解决高容错性问题,解决低延迟读写的问题,以及帮助企业数据库架构进行线性扩展。而且当有新的技术或服务出现时,可以很容易融入到现有的Lambda架构中。

 

三、Apach CassandraSparkand PulsarLambda实现

(一)Apach Cassandra

5.png

l 分布式,非主从结构、宽列开源NoSQL数据库

l 无缝多数据中心数据复制

l 线性扩展

l 强容错、零宕机

l 可调数据一致性控制,高性能读写

l 云原生(混合云,多云)

Cassandra数据库是分布式非主从结构的宽列NoSQL数据库,因为它没有主从结构,扩展性非常好,基本上是线性的扩展,而且每个数据会有多个副本。这意味着即便是有一个服务器宕机了,还有别的数据副本来满足用户的查询要求,容错率高。

 

(二)Apach Spark

6.png

Apache Spark是用于大规模数据处理的统一分析引擎,它有以下特性:

1)高性能

100X HadoopMapReduce

2)易用,丰富的API和程序库

结构化,半结构化,无结构化数据

3)统一的,多用途数据分析处理引擎

流数据处理

机器学习

图数据库

SQL

 

(三)Apach Kafka or Pulsar

7.png

l  大规模、分布式消息/流数据处理平台

l  分开的计算层和数据存储层

更好的系统扩展和负载均衡

l  无缝跨数据中心数据复制

l  灵活的消息处理模式

发布/订阅

消息队列

混合模式

l  内置多租客系统支持

l  高性能,低延迟

目前最流行的流数据平台是Kafka,最近几年Pulsar也受到越来越多的关注。从流消息处理角度来看,KafkaPulsar非常相似,都是大规模分布式消息处理流数据平台,Pulsar的优点在于它的计算层和存储层是分开的,Kafka这两个是在一起的。

分开计算层和存储带来的优点显而易见,首先是系统的扩容性比较好,可以分开的扩容计算层和存储层。其次是计算是无状态的,所以说当扩容计算层的时候,它对系统的影响非常小,而且扩容速度极快。

 

(四)Lambda架构-Apach CassandraSparkand Pulsar

8.png

上图是用Apach CassandraSparkand Pulsar三种技术实现Lambda的架构图。

首先在批处理层,我们用 Cassandra数据库作为原始数据的主数据库,然后在速处理层我们用Pulsar来实时接受原数据的原数据流,在批处理层我们有定时的Spark Job,然后Spark Job从原始数据数据库里面读取数据进行分析和处理,接着把生成的数据放到服务层的数据库中。那么生成的服务层数据库就代表批处理数据视图,根据不同的需求可以生成不同的批处理视图,用同样的Spark Job来实现。

 

(五)Lambda架构:技术栈和实现平台

l  技术栈(全部开源)

1)Apache Cassandra

-  数据建模和CQL

-  客户端编程接口

-  编程语言:Java

2)Apache Spark

-  DataStax Spark-Cassandra连接器

-  SparkSQL

-  DataFrame

-  编程语言:Scala

3)Apache Pulsar

-  生产者和消费者客户端编程接口

-  Pulsar函数

-  DataStax Pulsar-Cassandra联结器

4)其他

-  DataStax dsbulk数据加载器

l  实现平台

1)DataStax EnterpriseDSE

-  单集群,双数据中心部署模式

1 DSE Core/Cassandra

1 DSE Analytics/Spark

2)Apache Pulsar

-  单集群部署模式

3)DataStax Studio

-  CQLSparkSQL笔记本

 

(六)演示程序-应用场景示例

9.png

l  极简化的石油钻头探测器时序数据模拟

1)每个钻探地点有多个钻探头

2)每个钻探头有两种传感器:温度和速度

3)每个传感器每隔一段时间(1/1分钟)采集一次数据

l  需要回答的商业问题(示例)

1)  监控每个钻头的健康状况,防止过热/过速

2)  批处理视图

-  记录每个钻头每日的平均温度和转速

-  每天一次批处理

3)  速处理视图

-  记录一天之内出现钻头过热和过速的情况

-  实时处理

这个事例程序的应用场景是一个非常简单的石油钻头的探测器时序的数据模拟,上图是实际数据中包含的一些数据内容,包括钻头的ID,传感器的ID,传感器的类型,以及传感器的读取时间和传感器的读取值等。

在这个场景,每个钻探地点可能会有多个站头,每个钻头有两种传感器,一种监测温度,一种监测速度,每隔一段时间传感器就会收集一次数据,然后把它发送到Lambda平台。从而监控每个钻头健康状况,防止过热和过速。

从批处理视图来看,需要记录每个钻头每日的平均温度和转速,每日处理一次。从速处理视图来看,记录最近一天之内出现的钻头过热和过速的情况,是实时处理的。

Ø 演示示例子部件

10.png

负载生成器:负责生成这些生成一个大量的模拟数据的

负载加载器:把这些生成的原始数据加载到原始数据库里面

11.png

这里主要有三个空间,第一个是对应于原始数据的主数据库表Master,然后还有一个对应批数据视图数据库表的Batchview,速处理层对应是Realtimeview

12.png

数据处理流程情况

13.png

l  第一步:预处理

1)创建C*键空间和表(C* CQL

2)生成模拟的工作负载文件(负载生成器)

l  第二步:数据加载

1)(批处理层)将源数据加载到原始数据主数据库中(负载加载器)

2)(速处理层)将源数据以消息的方式实施发送到Pulsar主题中(Pulsar消息发布器)

l  第三步:数据处理,视图数据生成

1)(批处理层)每日源数据批处理;写入批处理视图(每日Spark汇总程序)

2)(速处理层)当日源数据实时处理;写入速处理视图(Pulsar函数,Pulsar C*连接器)

l  第四步:数据分析

Spark SQL

 

四、演示

DataStax Studio

15.png

Cassandra数据库的信息,第一步先确保这些键空间删掉了以后,这里并没有需要的键空间,然后创建一些新的键空间和表。

16.png

生成一个模拟数据(CSV文件),文件生成好了以后,让负载加载器将数据加载进来。

17.png

速处理层视图里面只能看到一些最近的数据,旧的数据已经被Function函数自动过滤掉了。

第二部分:云Cassandra + DLA Spark构建轻量化数据湖解决方案演示:

18.png

第一个需要开通对象存储oss,这是因为DLA Sparkjar包需要存储在oss上。

第二步需要有一个自己的云数据库Cassandra实例。

第三步获取你Cassandra的私网连接点,CQL端口、数据库、用户名、数据库、密码,这些信息会被用到来连接Cassandra实例。

实例信息查找:

19.png

进入控制台查看

第四步需要创建一个数据表并且插入一些数据,待会用来验证Spark可以正确地连接到这张数据表里面,读取数据。

最后一步需要为DLA准备访问Cassandra实例所需要的安全组ID和交换机ID,主要是作用于DLA spark的这些Cassandra实例,这些实例它需要挂载虚拟网卡才可以访问Cassandra

20.png

交换机ID:可使用VSwith ID

21.png

安全组ID:可使用VPC ID进入专有网络ID,查询已有安全组出方向

22.png

主要依赖是Cassandra connector 2.4.2版本

23.png

24.png

代码需要刚才准备好的那些连接Cassandra实例的信息,私网连接点,CQL端口,用户名密码以及表所在的表名。

 

总结:

第一步:开通oss存储,把jar包上传到oss上;

第二步:要拥有一个Cassandra实例;

第三步:Cassandra的控制台去获取连接Cassandra所需要的信息,比如它的用户名密码以及它连接的一些信息;

第四步:准备一张测试的表用于DLA Spark连接Cassandra的测试;

第五步:网络打通所需要的两个关键点,准备一个安全组ID和交换机ID用于创建Spark的虚拟网卡。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
10月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
9月前
|
存储 SQL 分布式计算
19章构建企业级大数据平台:从架构设计到数据治理的完整链路
开源社区: 贡献者路径:从提交Issue到成为Committer 会议演讲:通过DataWorks Summit提升影响力 标准制定: 白皮书撰写:通过DAMA数据治理框架认证 专利布局:通过架构设计专利构建技术壁垒
|
6月前
|
存储 分布式计算 资源调度
【赵渝强老师】阿里云大数据MaxCompute的体系架构
阿里云MaxCompute是快速、全托管的EB级数据仓库解决方案,适用于离线计算场景。它由计算与存储层、逻辑层、接入层和客户端四部分组成,支持多种计算任务的统一调度与管理。
503 1
|
8月前
|
消息中间件 分布式计算 大数据
“一上来就搞大数据架构?等等,你真想清楚了吗?”
“一上来就搞大数据架构?等等,你真想清楚了吗?”
154 1
|
7月前
|
SQL 存储 监控
流处理 or 批处理?大数据架构还需要流批一体吗?
简介:流处理与批处理曾是实时监控与深度分析的两大支柱,但二者在数据、代码与资源上的割裂,导致维护成本高、效率低。随着业务对数据实时性与深度分析的双重需求提升,传统架构难以为继,流批一体应运而生。它旨在通过逻辑、存储与资源的统一,实现一套系统、一套代码同时支持实时与离线处理,提升效率与一致性,成为未来大数据架构的发展方向。
|
9月前
|
架构师 Oracle 大数据
从大数据时代变迁到数据架构师的精通之路
无论从事何种职业,自学能力都显得尤为重要。为了不断提升自己,我们可以尝试建立一套个性化的知识目录或索引,通过它来发现自身的不足,并有针对性地进行学习。对于数据架构师而言,他们需要掌握的知识领域广泛而深入,不仅包括硬件、网络、安全等基础技术,还要了解应用层面,并熟练掌握至少一门编程语言。同时,深入理解数据库技术、具备大数据实操经验以及精通数据仓库建模和ELT技术也是必不可少的。只有这样,数据架构师才能具备足够的深度和广度,应对复杂的业务和技术挑战。 构建个人知识体系是数据架构师在学习和工作中的一项重要任务。通过系统化、不断深化的知识积累,数据架构师能够有效应对快速变化的商业环境和技术革新,进一
|
11月前
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
987 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
11月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
11月前
|
存储 数据采集 分布式计算
别光堆数据,架构才是大数据的灵魂!
别光堆数据,架构才是大数据的灵魂!
338 13