随着互联网 的进一步发展,各行业对大数据技术的应用日趋成熟,企业的信息化范围正在高速扩展。
我们发现,越来越多的企业大数据分析已不再局限于传统的T 1场景,对数据的实时性分析和处理要求很高。例如网站流量监测、安全告警、用户推荐等等,传统的批处理模式往往有数小时甚至数天的延迟,不能满足T 0的业务需要。为了有效解决实时框架和数据大规模存储计算的问题,PetaBase流式处理框架应运而生。
打通结构化数据的高速通道
同互联网公司相比,传统企业在业务种类、交易模式、监管要求方面都大大不同。比如传统的银行和股票交易领域,线上交易(OLTP)数据大都存储在关系型数据库中,针对这类业务需求设计了以下T 0实时处理的架构:
整个框架采用了Oracle GoldenGate(OGG) Kafka SparkStreaming的软件架构。集成该框架的PetaBase提供基础的数据采集、接收、过滤解析、实时规则计算、存储和分析挖掘功能,以此为基础构建实时风险预警系统进行业务逻辑加工,下游的各个监控与分析系统通过订阅方式获得实时处理后的数据,满足企业运营实时监控与分析的业务需求。
GoldenGate是一种基于日志的结构化数据复制软件,能够实现大量交易数据的实时捕捉,实现业务数据库与PetaBase的数据同步,保持秒级的数据延迟。
OGG源端Extract进程捕获Oracle日志数据,并将数据写入到Local Trail文件。源端pump进程将Local Trail文件发送到目标端,目标端Collector进程接收数据并写入到Remote Trail。目标端replicate进程复制Remote Trail到Kafka Cluster中指定的topic中。
Kafka是一种高吞吐量的分布式发布订阅消息系统,是基于磁盘顺序读写,支持批处理的消息队列,Kafka主要是作为缓冲,来异构、解耦系统。Kafka通过PetaBase的并行加载机制来统一线上和离线的消息处理,并提供实时的消费。除此之外,Kafka自带的Zero-Copy、Exactly Once等技术语义保证了消息传输的实时、高效、可靠以及容错性。
自研的SparkStreaming程序对kafka中指定topic中的流数据进行消费,解析过滤和结构化转换,并进行实时分析计算。计算后的增量数据落到hdfs,入库到petabase,提供分钟级延迟的准实时分析。
为了实现流计算服务自治,我们对框架内的软件进行了深度整合,打通了数据流的各个通道,能够实现功能及服务的灵活部署,构建位置透明的流式计算服务体系。用户不需要额外配置日志采集、消息队列等中间件服务器,显著降低使用成本,单个节点能达到每秒20万消息处理的能力。
打破半结构化数据的管理困局
商业企业内部价值最大的流数据除了业务系统外还有各类设备产生的日志数据、爬虫程序数据、实时资源监控信息、从外部获得的舆情、资讯信息。这些数据种类多、来源广,架构平台杂,日志规范性差,不同应用的日志路径、文件个数、内容、规则各不相同。
需要数据采集组件提供高性能、高可用性、高安全可靠性的实时采集、传输功能。所以,我们采用了在业界有着广泛应用且几乎成为事实标准的流式架构:Flume Kafka SparkStreaming。
整个框架分为三层:采集层、汇总层和处理层。其中采集层采用flume收集日志,在日志所在的主机上部署flume agent实时采集日志文件、监控信息、爬虫数据,实时发送后端的flume 服务端,服务端完成原始数据入库和初步的过滤解析并发送到kafka消息中间件(汇总层)。
Kafka作为实时流计算的数据分发节点,实现日志类数据实时分发。Kafka中不同来源的日志消息通过topic进行区分,每个消息都会被分区,用以分担消息读写负载,每个分区又可以有多个副本来防止数据丢失。SparkStreaming程序作为kafka的消费者,从而进行实时的处理。与结构化数据的实时框架一样,处理的结果持久化至PetaBase中,为统计和分析类应用提供数据支撑。
PetaBase的架构优势
我们基于Hadoop框架打造了高可用、高吞吐的实时/离线接入系统,将数据统一落入HDFS,形成原始层;基于Hive的小时级任务,分别负责计算生成明细层与汇总层;应用层使用PetaBase 内部的MPP计算引擎完成各种报表分析、KPI、决策支持的快速响应。
面对实时数仓的诉求,PetaBase扩展出的流式计算框架能很好地应对各种流式处理的需求。从上文可以看到,结构化数据的流式处理与半结构化数据的流处理基本相似,只是把采集端的 OGG 替换为 Flume,分发层和计算层都是完全一样的。从总体流程来看,基本模型是不变的。采用这种统一的、分层次的架构,有如下几个优势:
1)基于分层的设计,可以灵活地扩展或替换流处理框架中的上下游;
2)统一的后端处理,最大限度的保证系统的稳定性并减少混合架构的复杂度;
3)批流统一,同样的 SQL,既可以跑离线也可以跑实时;
4)低延迟,高吞吐,端到端的 Exactly-once;
5)同时支持结构化与非结构化数据的实时处理,支持多种异构数据源的采集;
6)离线实时数仓的一体化。
作为一款国产分布式大数据平台,PetaBase已经在诸多领域证明了自身的价值。尤其是在面向数据仓库的应用中,更是展示了其出色的性能和坚如磐石的可靠性。不管你是联机交易、网站访问,还是物联网、车联网(传感器)的应用场景,如果你需要一个能支撑T 0到T n的数据平台,PetaBase是你最好的选择之一。