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

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

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

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

(一)大数据

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

l5V定义/特性

1)体量/规模(volume)

Zetabyte(1021)era

2)速度(velocity)

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

3)多样性(variety)

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

4)准确性(veracity)

5)价值(value)

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

(二)数据湖

l所有企业数据的集合

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

数据的原始格式

2)海量数据

量大,生成速度快

l企业数据湖架构

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

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

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

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

l快数据

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

2)GB/秒或TB/秒

3)“新鲜”数据挖掘

批处理模式没法满足要求

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

(三)Lambda架构

l批处理层

1)主数据管理(SinglesourceofTruth)

原始数据(rawdata)

不可更改的(immutable)

追加更新(appendonly)

数据准确(externallytrue)

2)批处理视图预处理

预处理策略

l速处理层:

1)处理新添加的数据

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

l服务层:

低延迟数据查询

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

低延迟读和写(OLTPandOLAP)

线性拓展

易延展性

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

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

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

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

三、ApachCassandra,Spark,andPulsar的Lambda实现

(一)ApachCassandra

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

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

l线性扩展

l强容错、零宕机

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

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

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

(二)ApachSpark

1)高性能

100XHadoop(MapReduce)

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

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

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

流数据处理

机器学习

图数据库

SQL

(三)ApachKafkaorPulsar

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

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

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

l灵活的消息处理模式

发布/订阅

消息队列

混合模式

l内置多租客系统支持

l高性能,低延迟

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

(四)Lambda架构-ApachCassandra,Spark,andPulsar

上图是用ApachCassandra,Spark,andPulsar三种技术实现Lambda的架构图。

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

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

l技术栈(全部开源)

1)ApacheCassandra

-数据建模和CQL

-客户端编程接口

-编程语言:Java

2)ApacheSpark

-DataStaxSpark-Cassandra连接器

-SparkSQL

-DataFrame

-编程语言:Scala

3)ApachePulsar

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

-Pulsar函数

-DataStaxPulsar-Cassandra联结器

4)其他

-DataStaxdsbulk数据加载器

l实现平台

1)DataStaxEnterprise(DSE)

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

1DSECore/Cassandra

1DSEAnalytics/Spark

2)ApachePulsar

-单集群部署模式

3)DataStaxStudio

-CQL,SparkSQL笔记本

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

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

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

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

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

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

2)批处理视图

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

-每天一次批处理

3)速处理视图

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

-实时处理

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

演示示例子部件

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

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

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

数据处理流程情况

l第一步:预处理

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

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

l第二步:数据加载

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

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

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

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

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

l第四步:数据分析

SparkSQL

四、演示

DataStaxStudio

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

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

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

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

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

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

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

实例信息查找:

进入控制台查看

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

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

交换机ID:可使用VSwithID。

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

主要依赖是Cassandraconnector2.4.2版本

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

总结:

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

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

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

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

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

THE END
1.数据挖掘与机器学习——概念篇机器学习与数据挖掘概念回归分析包括:线性和非线性回归、一元和多元回归。常用的回归是一元线性回归和多元线性回归。 6. 聚类分析 聚类分析多用于人群分类,客户分类。所谓聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程。 五、数据挖掘流程 1.基本流程 2.数据处理 六、案例 —— 推荐算法https://blog.csdn.net/m0_63181360/article/details/138890384
2.数据挖掘数据量多少合适帆软数字化转型知识库数据挖掘数据量的合适程度取决于几个关键因素:目标问题的复杂性、数据的质量、计算资源的可用性、以及模型的复杂性。一般来说,为了确保数据挖掘结果的可靠性和有效性,数据量应足够大以捕捉数据中的模式和趋势。数据量越大,模型的泛化能力越强。举例来说,在处理图像分类任务时,需要数万甚至数百万张图像来训练深度学习https://www.fanruan.com/blog/article/581003/
3.数据量太少怎么做机器学习数据太少如何分析数据量太少怎么做机器学习 数据太少如何分析,没有高质量的数据,就没有高质量的数据挖掘结果,数据值缺失是数据分析中经常遇到的问题之一。当缺失比例很小时,可直接对缺失记录进行舍弃或进行手工处理。但在实际数据中,往往缺失数据占有相当的比重。这时如果手工处理非常https://blog.51cto.com/u_16213565/8785831
4.直播回顾单细胞测序:从样本制备到数据挖掘的全流程探讨10. 请问老师测序的数据量和捕获细胞数对数据的结果影响大吗? 答:不同的测序深度,在达到饱和之前,获得基因中位数据和细胞数量相差比较大,基因中位数不同的组织样本的标准差别较大,一般应该大于1000;捕获的细胞数量对不同研究需求有一定的影响,如一些稀有细胞群的鉴定可能会受影响。 https://www.yiqi.com/news/detail_23958.html
5.数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)第一,从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。 第二,利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。最后,如果有了新的数据需要通过随机森林得到分类结果https://cloud.tencent.com/developer/article/1061147
6.三级数据库技术概念2知识发现过程由三个阶段组成:数据准备、数据挖掘、结果的解释评估。 数据仓库是面向主题的、集成的、不可更新的、随时间不断变化的数据的集合。 数据从操作型环境转移到数据仓库过程中所用到ETL(Extract-Transform-Load)工具通常需要完成的处理操作包括抽取、转换和装载。 https://www.jianshu.com/p/32815082fdb3
7.用户画像应该怎么做数据是零散的,或者是表面的,用户画像要对收集到的数据做整理,比较常用的是通过数据建模的方式做归类创建。小圆接触过的大多是比较初级的用户画像,通过excel工具就可以基本完成整合。而对于技术工具层面的数据建模,感兴趣的可以看推文的第二条。 在数据量不大,用户画像比较初级的情况下,通过筛选、归类、整合的过程对用https://www.linkflowtech.com/news/153
8.2020年最值得收藏的60个AI开源工具语言&开发李冬梅LazyNLP 的使用门槛很低——用户可以使用它爬网页、清洗数据或创建海量单语数据集。 据开发者称,LazyNLP 可以让你创建出大于 40G 的文本数据集,比 OpenAI 训练 GPT-2 时使用的数据集还要大。 项目地址:https://github.com/chiphuyen/lazynlp Subsync 自动将视频与字幕同步 https://www.infoq.cn/article/2uabiqaxicqifhqikeqw
9.易撰专注新媒体数据挖掘分析服务易撰自媒体工具,基于数据挖掘技术把各大自媒体平台内容进行整合分析,为自媒体作者提供在运营过程中需要用到的实时热点追踪,爆文素材,视频素材微信文章编辑器排版,标题生成及原创度检测等服务.https://www.yizhuan5.com/customService/