- 无限性
在大数据流式计算中,数据是实时产生、动态增加的,只要数据源处于活动状态,数据就会一直产生和持续增加下去。可以说,潜在的数据量是无限的,无法用一个具体确定的数据实现对其进行量化,需要系统具有很好的稳定性,保证系统长期而稳定地运行。
3.3.3 流式计算关键技术
针对具有实时性、易失性、突发性、无序性、无限性等特征的流式大数据,理想的大数据流式计算系统应该表现出低延迟、高吞吐、持续稳定运行和弹性可伸缩等特性,这其中离不开系统架构、数据传输、编程接口、高可用技术等关键技术的合理规划和良好设计。
- 系统架构
系统架构是系统中各子系统间的组合方式,属于大数据计算所共有的关键技术。当前,大数据流式计算系统采用的系统架构可以分为无中心节点的对称式系统架构(如S4、Puma等系统)和有中心节点的主从式架构(如Storm系统)。对称式系统架构如图3-6的左图所示,系统中各个节点的功能是相同的,具有良好的可伸缩性。但由于不存在中心节点,在资源调度、系统容错、负载均衡等方面需要通过分布式协议实现。例如,S4通过ZooKeeper实现系统容错、负载均衡等功能。
主从式系统架构如图3-6的右图所示,系统存在一个主节点和多个从节点,主节点负责系统资源的管理和任务的协调,并完成系统容错、负载均衡等方面的工作;从节点负责接收来自主节点的任务,并在计算完成后进行反馈。各个从节点间没有数据往来,整个系统的运行完全依赖于主节点控制。
2.数据传输
数据传输是指完成有向任务图到物理计算节点的部署之后,各个计算节点之间的数据传输方式。在大数据流式计算环境中,为了实现高吞吐和低延迟,需要更加系统地优化有向任务图以及有向任务图到物理计算节点的映射方式。在大数据流式计算环境中,数据的传输方式分为主动推送方式(基于push方式)和被动拉取方式(基于pull方式)。
主动推送方式是在上游节点产生或计算完数据后,主动将数据发送到相应的下游节点,其本质是让相关数据主动寻找下游的计算节点,当下游节点报告发生故障或负载过重时,将后续数据流推送到其他相应节点。主动推送方式的优势在于数据计算的主动性和及时性,但由于数据是主动推送到下游节点的,往往不会过多地考虑下游节点的负载状态、工作状态等因素,可能会导致下游部分节点负载不够均衡。
人工智能与大数据技术导论
72