设计目标
传统的离线计算会存在数据反馈不及时,很难保证很多急需实时数据做决策的场景。同时,如果各个业务方自己既负责开发实现各种实时计算程序,同时还需要维护一套实时计算软件环境,不仅效率低效,对公司的开发资源、硬件资源也是极大的浪费。所以为公司提供统一的实时计算平台,提升业务团队开发效率,满足公司各种精细化运营、监控等的要求,我们近期启动**实时计算平台的建设工作。
整体架构
设计要点
- 权限认证
沿用离线计算平台的权限体系,通过LDAP认证提交任务的用户是否合法。验证过程在任务提交前进行,通过调用ddw-api的接口实现。需要扩展字段表明是否给该账号开通了提交实时任务的权限,防止任何账号都可以提交。(账号合法->未禁用->实时权限->passed)
- 资源隔离
使用YARN作为资源管理,主要考虑是其本身可与现有权限体系配合,同时很多分布式程序包括Spark,Storm等都提供了on YARN的部署形式。而由于目前的现状是所有离线任务都跑在YARN上面,如果仅仅只是将Spark Streaming任务提交上去,势必会出现离线实时任务混合运行在一起,极易出现资源争抢而影响实时任务。线上集群采用的CDH版本,无法使用社区版基于标签的资源调度方式。