Flink+HBase场景化解决方案

在中国HBase技术社区第十届Meetup杭州站上,阿里巴巴高级产品工程师高旸为大家分享了实时计算技术相关的发展背景,并介绍了基于Flink+HBase的实时计算场景化解决方案,并对于在线教育、城市大脑、实时风控等典型的实时计算方案应用场景进行了介绍。

演讲嘉宾简介:高旸(花名:吾与),阿里云计算平台事业部实时计算高级产品专家。

以下内容根据演讲视频以及PPT整理而成。

阿里云实时计算团队一直都在思考一个问题,那就是“如今,在客户所面对的实时计算场景越来越复杂的情况之下,单一的产品是否能够解决客户的所有需求?”因此,也就有了本次分享的主题,也就是Flink+HBase所提供实时计算场景解决方案。

实时计算市场竞争分析——传统厂商
在实时计算的市场中,IBM以及Oracle等传统IT厂商布局和起步比较早,因此其所能够提供的场景也就非常丰富,无论是2B还是2C,这些传统厂商都拥有非常丰富的产品。但是,他们所提供的产品往往也比较昂贵,并且需要本地化的部署。除此之外,在云化的过程中,IBM和Oracle的整体表现也欠佳,因此这些传统厂商也在积极地寻求更多云化的场景。

Flink+HBase场景化解决方案

实时计算市场竞争分析——云厂商
除了上述所提到的传统IT巨头之外,很多的云计算厂商也正在实时计算方面积极地进行布局。比如Google在大数据相关领域一直在进行投入,其也在2014年的时候进军实时计算领域,Google在实时计算领域的主打产品就是Dataflow。微软Azure和AWS分别在2015年和2016年进入实时计算领域,阿里云和华为同在2017年进入实时计算领域,而腾讯云则是在2018年刚开始布局。总之,云厂商在实时计算领域起步都比较晚,所涉及的场景也比较浅,但是在价格比较具有优势,因此未来的发展空间是巨大的。

Flink+HBase场景化解决方案

业界开源技术生态分析
目前,在业界的实时计算以及流计算领域,开源技术生态主要产出了三代产品:第一代产品以Storm为代表,第二代以Spark为代表,第三代则以Flink为代表。这里重点介绍一下Flink,Flink是有状态的实时计算处理引擎,而正式因为Flink具有状态,因此其非常适合在事件处理上做一些场景化的解决方案,并且可以进一步演化为微服务框架,所以Flink也是一项非常适合微服务场景的技术。

Flink+HBase场景化解决方案

同时,大家也可以看到从去年到今年的年初的这段时间里面,Flink也是整个Apache社区中用户最为活跃的项目。但是,阿里云实时计算团队在使用中也发现,Flink还是一个偏向于PaaS层的技术,而客户无法直接通过使用Flink来解决自己的场景化需求,在Flink的前面需要像Kafka这样的工具实现数据的导入,在其后面还需要一些像HBase这样的存储工具帮助实现数据的存储。因此,想要通过Flink解决实时计算场景的问题,还是需要一整套生态来帮助。

Flink容器化解决方案——架构
阿里云实时计算团队一直在思考如何将这些开源技术整合到一起,使得他们能够真正地解决客户所面对的问题,帮助客户解决“最后一公里”的问题。因为像Flink这样PaaS层的工具,如果无法帮助客户解决这“最后一公里”的问题,那么产品就不会被客户所接受。在阿里云的Flink容器化解决方案中,底层构建在Google的K8S的容器上,在上端除了导入了Flink的实时计算引擎之外,在架构中还将Flink上游的Kafka和下游的HBase等组件也加入进来。因此,Flink容器化解决方案在Google的K8S框架下,能够提供所有的数据处理能力。如果客户还有其他的需求,还可以将相应的服务以K8S的Orchestra方式添加进来。

Flink+HBase场景化解决方案

在架构中更上面的一层,阿里云Flink容器化解决方案希望能够提供更加贴近用户的SaaS层服务。在实时计算+Flink或者HBase方面,阿里云实时计算团队针对于自身所服务的客户进行了用户画像,最终抽象出了针对于几个主要的行业的容器化服务,比如针对于安全行业以及城市大脑等的规则引擎,针对于银行以及其他风控领域的决策引擎,此外还有针对于语音处理、自然语言处理以及视频分析的场景,并且还有实时在线数据分析以及实时人工智能的场景。

除此之外,阿里云实时计算团队还希望在基础的服务层之上将一些更贴近客户的“PaaS+”服务也整合进来,于是在Flink容器化解决方案的架构中还为客户提供了系统管理员界面和用户开发界面。因此,对于阿里云的Flink容器化解决方案而言,主要就是按照以上的思路去设计更加细化的、镜像技术叠加的解决方案和产品。

实时容器化计算解决方案——生态合作伙伴
对于阿里云的实时容器计算解决方案而言,非常希望能够引入更多的生态合作伙伴,希望更多的在垂直领域具有丰富经验的合作伙伴能够不断加入进来,将更多的偏向于SaaS层的解决方案构建在该平台之上,比如增加更多可插拔的或者更加易用的解决方案,成为产品或者解决方案的分销渠道或者交付渠道,承担扩容、交付以及售后服务的通道。阿里云非常希望通过生态或者渠道等方式共同构建起融合Flink、HBase以及Kafka等产品的实时容器化计算生态,构建产品形态的端到端闭环。

Flink+HBase场景化解决方案

Flink实时计算的典型场景
如下图所示的是阿里云Flink实时计算的典型场景,该产品于2018年10月正式上线,经过上线之后的半年时间,通过阿里云对于客户进行的用户画像和分析发现,云上的很多实时计算产品在使用程度上还是较浅的。目前,云上实时计算产品大致能够触达3个主要的领域,即数据分析、事件驱动和数据处理。

Flink+HBase场景化解决方案

对于数据分析类场景而言,主要的产品就是实时数据大屏,比如在阿里双11也有超级数据大屏的展示,实时数据大屏里面就包括了实时的BI等场景和解决方案。对于事件驱动类场景,主要的产品就是实时监控和实时风控相关的产品,因为Flink是有状态的,因此其天生就具备事件处理能力。而在实际的场景中发现,很多客户会组合规则引擎、决策引擎以及指标监控和调优等多种场景。更进一步就是数据处理类的场景,其实Flink+HBase属于强计算场景,因此也希望能够出现更多的强计算场景,比较常见就像是城市交通大脑,如今全国很多城市都部署了大量的交通摄像头,每天都会产生大量视频监控数据,因此需要强计算场景进行支撑。此外,比如在线教育等领域,也有很多的视频沉淀下来。对于实时数据处理而言,需要在生产或者生活等方面寻找能够产生大量数据的场景,阿里云也希望在这样的场景下提供更多的能力和服务。

在线教育——实时视频分析场景
阿里云实时计算团队通过前期和客户的深入沟通沉淀了很多场景,如下图所示的就是在线教育的实时视频分析场景。阿里云之前在城市大脑等领域对于实时视频分析探索得较为充分,但是在偏向于民用的领域,尤其是在与日常生活相关的方面,实时视频分析解决方案的应用还不够深入。因此,从2018年底到2019年初的这段时间里,阿里云实时计算团队和中国顶尖的在线教育领域的独角兽公司进行了多轮深入的沟通,充分地挖掘了这些客户在实时视频分析领域的一些需求。从大体上可以认为,在线教育领域对于通过视频分析来判断课程质量、监督课程进展状况具有很强烈的需求,而阿里云认为Flink+HBase+Kafka这样的实时容器化计算解决方案在像在线教育这样的民用视频分析领域可以发挥很好的作用。

Flink+HBase场景化解决方案

在线教育——实时预测场景
对于在线教育领域而言,除了上面所提到的实时视频分析场景之外,还存在着实时预测的场景。比如在线教育平台上可能每天的每个时段都会有大量的课程开放出来,因此就会产生大量的视频数据,在这些课程中间往往会有大约5分钟的课间。而在这5分钟的课间时间,在线教育平台就希望能够对于所有的网络和服务器等基础设施以及平台系统的运行状况进行评估,通过借助机器学习进行预测,预测平台在未来的30分钟内还能够开放出多少门课程,这也是Flink+HBase在Online的机器学习方面的一个应用场景。针对于这样的场景,阿里云实时计算团队也正在和客户进行探讨,希望能够在这样的场景下实现更多具有参考价值的优秀案例。

Flink+HBase场景化解决方案

城市大脑——实时视频分析场景
如下图所示的就是阿里巴巴投入较多的城市大脑项目。城市大脑目前已经在杭州、上海以及海口等多个城市落地,其底层就是通过实时计算与HBase的组合,进而实现对于整个视频流的处理和分析。这些被处理的视频数据往往来自于城市中的高清摄像头,这些高清摄像头能够实时地获取大量的数据并传输到城市大脑中。而想要通过城市大脑实现红绿灯的实时调配就需要Flink构成的数据实时处理平台,数据处理之后再将整个动态视频数据所产生的特征值以及相关指标都存储到HBase里面,并在后续叠加多种类型的算法对数据进行分析,进而实现对整个城市交通的智能化治理。这是实时视频分析处理的典型场景,同时也是目前中国一线城市和诸多省会级城市都在实践的场景。

Flink+HBase场景化解决方案

实时欺诈检测(风控)场景
如下图所示的是实时欺诈检测的场景,也就是风控场景。对于风控而言,不仅有金融类的风控,还有营销类的风控等,类型多种多样。拿营销类风控来举例子,首先,用户的行为经过APP上报或者Web日志记录下来,之后发送到一个消息队列中去,然后通过风险模型和规则引擎进行实时计算,进而产生一些消息预警。

Flink+HBase场景化解决方案

上一篇:“十年磨一剑”--有赞的HBase平台实践和应用之路


下一篇:中国HBase技术社区第十届meetup--HBase生态实践 (杭州站)