PoseidonX

一、实时计算简介

随着互联网应用的迅速普及,需要进行处理的数据不仅在数量上迅速增长,在数据处理的时效性上也比之前有更加强烈的需求。在传统的数据处理流程中,一般是先收集数据并且将数据存储到数据存储介质中。然后当需要的时候通过对存储好的数据进行相关处理得到分析后的结果。这样的做法虽然能保证处理数据的准确性和完整性,但是却不能保证很好的时效性。导致人们无法及时的根据最新的数据分析结果做出正确的决策,从而数据的价值也随着时间的流逝而失去价值。

为了解决这些问题, 相对于保证数据分析的准确性,完整性而忽视时效性的传统批处理而言,产生了更加注重时效性的实时计算的概念。与一次性处理全部数据的批量计算不同,实时计算一般是对无限的数据流进行持续不断的连续运算,并对外输出运算结果供用户使用。

二、 关于统一实时计算平台

目前常用的实时计算技术包括storm,jstorm,spark streaming和flink等,人们往往会根据自己业务需求的特点选择适合自己的实时计算引擎。而如何在公司内部部署和使用这些实时计算技术呢,下面以最常用的jstorm为例进行分析说明。

首先我们可以在一台机器上运行实时计算,也就相当于在一台机器上同时运行jstorm的 nimbus进程,supervisor进程以及具体任务的worker进程。这样做有很明显的缺点,包括不可扩展,性能受限于单台机器的资源,无法进行高可用等问题。

然后,为了解决以上的问题, 每个业务线可以选择自建独立的实时计算集群,这样的话虽然能在一定程度上克服单机运算的缺点,但同时也有不可忽视的问题,例如为了保证集群的高可用等,每个集群至少要有四台机器,包括一个nimbus主节点,一个nimbus从节点,以及两个supervisor节点。这样就需要预先准备大量机器资源,同时由于是每个业务线独立搭建各自的实时计算集群,也就无法保证建立统一的监控,报警等体系,并且每个集群都需要进行独立维护,因此维护难度大,需要投入很多的精力。

为了克服上述这些问题,我们需要一个统一的实时计算平台,来克服上述方案的诸多缺点。

三、 我们的实时计算平台

系统功能图

在以上基础之上,我们实时计算平台提供了一系列方便用户使用的特性,使用户可以通过我们平台对其实时任务进行一站式管理,主要包括如下功能:

下图为提交任务的示意图: 系统功能图

目前我们的实时计算平台为公司的多个业务场景提供服务,包括:

四 、关于统一实时计算平台搭建的一些想法