前言:中间件/大数据组件的出现是为了解决特定的应用场景。
大数据技术正处于高速发展时期,有些应用场景基本已经统一了技术选型,有些技术场景的赛道正在互相角力,本文基于特定技术统一应用场景这个目的展开讨论;
对于应用场景默认技术选型的技术,我们可以当做大数据基础能力学习,对于正在发展的赛道,可以持续关注发展动态,为后续技术架构优化做准备。
后续会从标准选型的技术展开分析,我在这里抛砖引玉,希望各位技术友人,可以在各自的细分应用赛道补齐,讨论已经统一标准的技术。
从数据集成,存储,计算,调度监控,资源管理,这5方面分析:
数据主要分结构化、半结构化、对象数据,
结构化数据:存储主要就是OLAP数据组件的开发赛道,用于透视分析;HDFS+HIve存算分离的技术,doris/starRocks、ClickHouse等存算一体OLAP组件,TiDB(OLTP+OLAP一站式技术);
半结构化:Hbase、ES、MongoDB、Redis等NoSQL数据库
对象存储:S3,minio等(对象都可以转换成二进制存储到任务可存储的数据的地方),现在多数公司用阿里的平台。
消息队列存储场景:RocktMq、Kafka、Pulser,用于大吞吐和削峰。
数据湖能力:Hudi、Delta、iceberg、Paimon
注:面对不同的应用场景,需要不同的存储系统去保障应用能力,所以现在依旧百花齐放,主要来说说分四大类:
1.基于基础文件存储的各类文件系统(HDFS);包含各种用于标准化计算的结构化存储系统;
2.基于列存的Nosql数据库,会根据业务的不同自定义有自身组件特性的计算引擎,如Hbase、Doris等;
3.基于对象的存储,文件、视频、图像、音频等,主要在对象还原的性能上区别,如S3、minio等(理论上拥有存储系统的均可包装);
4.基于应用的存储队列,如kafka、RocktMq等;
数据湖统筹存储技术,可以关注,最新的数据湖存储技术;
数据迁移是主机层到中间件,中间件到中间件之间的数据通道;
结构化数据迁移:
mysql等OLTP数据库到大数据OLAP组件迁移:cannal、datax、maxwell,sqoop等;
非结构化数据迁移:
从文件采集数据到中间件存储,或者组件之间存储,flume、filebeat、kettle、debezium等;像spark、Flink第三、四代计算引擎可做数据管道作用;
对象迁移:
通常用后端机器语言做中间件之间的桥梁。
数据迁移平台(数据集成开源平台能力):
现在多种开源社区之间喜欢使用FlinkStream开发自己的数据管道;seatunnel用平台的思维,做了一个可用于数据集成的平台,关注seatunnel;
大数据计算框架发展到Flink已经到了第四代:MapReduce、tez、spark、Flink;
计算能力主要用于离线和实时的数据处理和数据分析;
第四代计算框架Flink架构拥有优秀的实时处理能力,Flink1.16版以后,离线计算性能也有了大幅提升,灵活计算场景,灵活计算Flink基本统一了技术选型;
从HIve、greenplum、impala、Kylin、Doris、ES、ClickHouse、TiTB、Doris/StarRocks,开源社区不断从各个角度去解决大数据分析和计算的问题;
TiTB和Doris社区从不同角度去优化OLAP数据的使用简易性,ES利用倒排索引,在快速搜索的能力上独树一帜;
目前开源社区,全文搜索能力ES基本统一了技术选型;OLAP技术能力,Doris/StarRocks的技术架构,基于现有已经完成的能力,虽然稳定性和资源管理上存在瑕疵,但是瑕不掩瑜,Doris/StarRocks的技术架构在OLAP技术领域有着统一该场景的趋势,期待后续的发展。
大数据任务调度系统从oozie、ariflow、azkaban到dolphinscheduler,从简易性到功能覆盖性,dolphinscheduler都基本实现了绝大多数大数据任务的管理,除了实时任务管理上存在瑕疵,也基本统一了大数据任务调度场景;Flink任务的高度嵌合平台streamPark,在对Flink任务的管理上做到了更多的定制化能力,作为dolphinscheduler社区的讲师,已经沟通在做实streamPark嵌入dolphinscheduler的功能,相信dolphinscheduler社区在4.0版本能完善实时任务调度能力。
数据存储:
数据湖统筹存储技术:
数据存储目前可以持续关注数据湖Paimon的发展动向。
数据集成:
数据迁移管道也没有统一的标准,理论上有N种存储组件,就会有N*N种管道技术,打通彼此的数据存储通道;
seatunnel类似的数据集成平台可以关注一下;
数据计算:
灵活的计算引擎,面对离线和实时的计算场景,Spark和Flink均用自己的方式实现了,但是Flink在实时的处理上性能更优,1.16版本后,离线性能也得到优化;
基本可以确认在灵活计算场景上,Flink统一了标准;
OLAP数据库:
Doris/starRocks的技术架构和可用性在现有OLAP应用场景上是最全的且开发简单、运维简单,虽然在特定场景性能指标中,不如一些OLAP数据库,但是整体上是目前最佳的;
可持续关注Doris/starRocks目前的发展动向,开源市场他目前是整体最优的OLAP服务;
任务调度平台:
整体上,dolphinscheduler成为了一种标准,特定任务定制化场景,例如Flink的任务调度,streamPark有更好的体验感;但由于dolphinscheduler基于SpringBoot开发,功能集成二开也相对简单,
调度平台基本可默认dolphinscheduler作为标准调度方案;
统一应用场景的技术还有很多,比如Redis这种在某个特性上具有极致性能的中间件(key-value应用场景,无与伦比的QPS/TPS);
希望各位好友可以在评论区讨论、补充!!!