没有合适的资源?快使用搜索试试~ 我知道了~
TEG实时计算团队作为腾讯内部最大的实时数据服务部门,为业务部门提供高效、稳定和易用的实时数据服务。其每秒接入的数据峰值达到了2.1亿条,每天接入的数据量达到了17万亿条,每天的数据增长量达到了3PB,每天需要进行的实时计算量达到了20万亿次。 近年来大数据技术的发展,特别是HDFS和HBase这些大数据存储系统以及Hadoop和Spark这些大数据计算系统,已经使人们能较好地处理数据规模的问题。但是人们对于数据内在价值的追求是无止境的。一方面,人们开发了越来越多复杂的数据挖掘算法来发现数据更深层次的关系信息;而另一方面,由于数据价值往
资源推荐
资源详情
资源评论
基于基于ApacheFlink的一站式实时计算平台的一站式实时计算平台
一、背景介绍
TEG实时计算团队作为腾讯内部最大的实时数据服务部门,为业务部门提供高效、稳定和易用的实时数据服务。其每秒接入
的数据峰值达到了2.1亿条,每天接入的数据量达到了17万亿条,每天的数据增长量达到了3PB,每天需要进行的实时计算量
达到了20万亿次。
近年来大数据技术的发展,特别是HDFS和HBase这些大数据存储系统以及Hadoop和Spark这些大数据计算系统,已经使人们
能较好地处理数据规模的问题。但是人们对于数据内在价值的追求是无止境的。一方面,人们开发了越来越多复杂的数据挖掘
算法来发现数据更深层次的关系信息;而另一方面,由于数据价值往往随着时间的流逝而消失,人们对数据分析时效性的要求
也越来越高。越来越多的业务开始使用实时计算来及时获取数据反馈。
之前实时计算团队基于Apache Storm构建了早期的实时计算平台。但在长期的维护过程中,Apache Storm一些设计和实现上
的缺陷逐渐暴露出来。Apache Flink出现之后,其在计算接口、计算性能和可靠性上的优异表现,使我们决定使用Apache
Flink作为新一代实时计算平台的计算引擎。
相比于Storm和其他一些流计算框架,Flink有着更先进的计算框架,具有以下几点优势:
1)首先,Flink提供了更友好的编程接口。Storm提供的API偏底层且过于简单,用户需要大量的开发工作来完成业务需求。另
外,用户在开发Storm程序时的学习成本也较高,需要熟悉框架原理和在分布式环境下的执行细节。Flink除了提供Table API
和SQL这些高级的声明式编程语言之外,还对window这些流计算中常见的算子进行了封装,帮助用户处理流计算中数据乱序
到达等问题,极大的降低了流计算应用的开发成本并减少了不必要的重复开发。
2)Flink提供了有效的状态管理支持。大部分的计算程序都是有状态的,即计算结果不仅仅决定于输入,还依赖于计算程序当
前的状态。但Storm对程序状态的支持十分有限。一般情况下,用户常常需要将状态数据保存在MySQL和HBase这样的外部存
储中,自己负责这些状态数据的访问。这些对外部存储的访问常常成为Storm程序的性能瓶颈。大多数情况下,用户只能设计
复杂的本地cache来提升性能。Spark Streaming直到最近才提供了有限的状态管理支持,但受限于其实现机制需要一定的远
程访问和数据迁移工作,因此状态数据的访问效率并不高。Flink则对计算程序的状态存储提供了有效支持。用户可以通过提
供的接口方便地存储和访问程序状态。由于这些状态数据存放在本地,因此用户可以得到较高的访问性能。在发生故障
时,Flink的状态管理会配合容错机制进行状态数据的重建,保证用户程序的正确性。而当用户需要修改程序并发度时,Flink
也可以自动地将状态数据分发到新的计算节点上。
3)Flink提供了丰富的容错语义。由于Storm缺少对程序状态的有效支持,其对容错的支持也较弱,很难保证在发生故障的情
况下,每条输入数据恰好被处理一次。而Flink则依靠分布式系统中经典的Chandy-Lamport算法,能够对用户程序的输入和状
态生成满足一致性的程序快照。在发生异常的情况下通过快照回滚,Flink可以保证EXACTLY-ONCE的容错语义。而利用异步
checkpoint和增量checkpoint技术,Flink能够在以较低的成本对用户程序进行快照。在开启快照时,用户程序的性能几乎不受
影响。
4)Flink拥有出色的执行性能。Flink基于事件触发的执行模式对数据流进行处理,相比于Spark Streaming采取mini batch的执
行模式,能够大量减少程序执行时的调度开销。此外,Flink对网络层进行了大量优化,通过细粒度封锁和高效内存访问提高
数据传输性能,并通过反压机制和流量控制有效降低流量拥塞导致的性能下降。加上Flink能够避免状态数据的远程访
问,Flink在实践中表现出比其他流计算系统更出色的执行性能,具有更低的处理延迟和更高的吞吐能力。
二、平台介绍
尽管Flink作为计算引擎有着较为出色的表现,但在业务迁移过程中,我们仍然遇到了一些问题。一个流计算任务从开发到上
线要经历包括开发、测试、部署和运维在内的多个阶段。用户首先在开发阶段使用IDE开发程序,并进行编译和打包。之后用
户将打包好的程序部署到测试环境中,生产测试数据进行测试。测试通过之后,用户需要将其部署到现网环境中,并设定需要
的运维指标进行监控。在这些阶段中,用户需要在不同环境和不同工具打交道,整体的开发和运维效率较低。
为了提高用户流计算任务持续集成和持续发布的效率,实时计算团队围绕Flink打造了Oceanus,一个集开发、测试、部署和
运维于一体的一站式可视化实时计算平台。Oceanus集成了应用管理、计算引擎和资源管理等功能,同时通过日志、监控、运
维等周边服务打通了应用的整个生命周期。
剩余6页未读,继续阅读
资源评论
weixin_38665411
- 粉丝: 8
- 资源: 936
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Chrome代理 switchyOmega
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功