解决方案:Oceanus:基于Apache Flink的一站式实时计算平台

优采云 发布时间: 2022-11-26 16:21

  解决方案:Oceanus:基于Apache Flink的一站式实时计算平台

  Flink Forward 由 Apache 正式授权,用于展示 Flink 社区最新发展、开发计划和 Flink 相关生产实践的会议。2018年12月20日,Flink Forward首次在中国举行。腾讯TEG数据平台部出席会议,并介绍了基于Flink的一站式实时计算平台Oceanus。

  1. 背景

  作为最大的实时数据

  腾讯服务部,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 程序时学习成本较高,需要熟悉分布式环境中的框架原理和执行细节。除了提供表 API 和 SQL 等高级声明式编程语言外,Flink 还封装了流计算中常见的运算符 window,帮助用户处理流计算中数据按顺序到达等问题,大大降低了流计算应用的开发成本,减少了不必要的重复开发。

  2)Flink提供有效的状态管理支持。大多数计算程序都是有状态的,这意味着计算的结果不仅由输入决定,还取决于计算程序的当前状态。但是,Storm 对程序状态的支持非常有限。通常,用户通常需要将状态数据保存在 MySQL 和 HBase 等外部存储中,他们负责访问此状态数据。这些对外部存储的访问通常会成为 Storm 程序的性能瓶颈。在大多数情况下,用户只能设计复杂的本地缓存来提高性能。Spark Streaming 最近才提供有限的状态管理支持,但由于其实现机制需要一些远程访问和数据迁移,状态数据的访问效率并不高。Flink 为计算程序的状态存储提供了有效的支持。用户可以通过提供的接口轻松存储和访问程序状态。由于此状态数据驻留在本地,因此用户可以获得较高的访问性能。在发生故障时,Flink 的状态管理会配合容错机制重建状态数据,保证用户程序的正确性。当用户需要修改程序并发时,Flink 还可以自动将状态数据分发到新的计算节点。

  3) Flink 提供了丰富的容错语义。由于 Storm 缺乏对程序状态的有效支持,对容错的支持较弱,因此很难保证每个输入数据在发生故障时只处理一次。另一方面,Flink 依靠分布式系统中经典的 Chandy-Lamport 算法来生成用户程序输入和状态的一致程序快照。在出现异常的情况下,通过回滚快照,FLINK 可以保证 EXACTLY-ONCE 的容错语义。使用异步检查点和增量检查点技术,Flink 能够以低成本快照用户程序。打开快照后,用户程序的性能几乎不受影响。

  4)Flink具有出色的执行性能。Flink 基于事件触发的执行模式处理数据流,相比 Spark Streaming 的迷你批量执行模式,可以大大降低程序执行过程中的调度开销。此外,Flink 在网络层做了大量优化,通过细粒度阻塞和高效内存访问来提高数据传输性能,并通过背压机制和流量控制有效降低流量拥塞造成的性能下降。再加上 Flink 避免远程访问状态数据的能力,Flink 在实践中表现出比其他流计算系统更好的执行性能,处理延迟更低,吞吐能力更高。

  2. 平台介绍

  虽然 Flink 作为计算引擎性能卓越,但在业务迁移过程中还是遇到了一些问题。一个流计算任务从开发到发布要经历多个阶段,包括开发、测试、部署、运维等,用户在开发阶段首先使用IDE对程序进行开发,然后进行编译打包。之后,用户将打包的程序部署到测试环境并生成测试数据进行测试。测试通过后,需要部署到现网环境中,设置监控所需的运维指标。在这些阶段,用户需要处理不同的环境和不同的工具,整体开发和运营效率较低。

  为了提高用户流计算任务的持续集成和持续发布效率,实时计算团队围绕Flink构建了Oceanus,这是一个集开发、测试、部署、运维为一体的一站式可视化实时计算平台,Oceanus集成了应用管理、计算引擎、资源管理等功能,通过日志等外设服务打通了整个应用生命周期。 监控和运维。

  

" />

  目前,Oceanus已覆盖所有业务BG,为多种业务提供实时计算服务。实时计算团队还将腾讯内部的TDBank作业从JStorm迁移到Oceanus平台。此外,基于 SQL on Storm 的 EasyCount 平台上的大部分业务也已迁移到 Oceanus。

  2.1 多样化的应用程序构建方法

  Oceanus提供多种形式的应用程序构建,以满足不同用户的需求。普通用户可以使用画布轻松构建他们的实时计算应用程序。Oceanus在网页上提供了常见的流计算算子,用户可以将算子拖到画布上,连接这些算子构建流计算应用。这种简单的构造方法不需要用户了解底层实现的细节或掌握SQL等语言的语法,让用户专注于业务逻辑和数据流。

  对于有数据分析背景的用户,Oceanus 提供了 Flink SQL 接口。Flink SQL 尝试遵循 SQL 标准来描述流数据的计算语义,因此过去使用数据仓库进行离线数据分析的用户可以快速迁移到 Flink SQL,并使用 Flink SQL 分析实时数据流。为了进一步降低用户的开发成本,Oceanus还在平台上提供了许多常见的SQL功能。为了打造便捷流畅的用户体验,Oceanus 还为 Flink SQL 的开发提供了一系列辅助功能:

  1) 语法高亮和自动完成

  2)表名和字段名的快速输入和模糊匹配

  3) 常用函数的模糊匹配

  4)一键检查代码有效性

  5)一键式代码格式化

  ......

  考虑到 canvas 和 SQL 的表达能力都有限,一些逻辑复杂的应用很难开发,一些底层细节无法优化,Oceanus 允许用户继续使用 Flink 提供的 DataStream 接口来开发实时计算程序。这样,用户只需要打包他们的实时计算程序并上传到Oceanus。

  2.2 外部数据管理

  为了方便用户管理 Flink 作业读写,Oceanus 提供了外部数据管理功能。在开发应用之前,用户可以通过Oceanus声明应用需要使用的数据源名称、存储类型(如Hippo、Tube、MySQL或HBase等),以及每个数据字段的名称和类型。外部数据管理允许用户在Oceanus上创建和访问外部数据,并在开发程序时提供必要的字段和格式信息,提高用户开发实时计算应用程序的效率。此外,外部数据管理允许用户更好地维护外部数据的沿袭和生产逻辑,并在数据出现异常时根据生产环节对问题进行追溯和定位。

  2.2 计算结果的实时可视化

  对于正在运行的应用程序,Oceanus提供了实时查看计算结果的能力。Oceanus目前提供两种不同的实时可视化方式。首先,用户可以通过Oceanus提供的结果抽样功能获得当前计算结果的实时采样,并利用对比结果验证实时计算应用的正确性。此外,Oceanus还开辟了专业的举报平台——小马报告(Pony Reports)。用户可以将计算结果连接到Pony报表中,以构建业务仪表板并实时可视化业务数据。

  

" />

  2.3 自助调试,快速验证业务逻辑

  在实时计算应用的开发中,Oceanus为用户提供了一系列工具验证应用逻辑。用户可以使用Oceanus提供的一键生成功能生成测试数据,也可以将自己的测试数据上传到Oceanus,通过对比预期结果与实际结果来验证应用逻辑的正确性。在后续工作中,Oceanus还将提供从实时网络数据采样中生成测试数据的能力。通过这种方式,用户可以使用更真实的测试数据更好地识别应用程序逻辑的问题。

  2.4 快速简便的资源管理和作业部署

  完成作业开发和测试后,用户可以通过Oceanus快速部署在集群上。Oceanus依靠腾讯内部资源调度系统Gaia进行资源管理和作业部署。Oceanus在作业管理页面提供了作业资源配置页面,通过该页面可以配置作业所需的CPU和内存资源,并指定作业需要部署的集群。用户完成配置后,Oceanus会向Gaia申请相应的资源,并将作业提交给Gaia运行。Oceanus基于Flink提供的检查点功能,允许用户实时修改作业并发,实现动态伸缩。

  2.5 丰富的运维监控指标

  Oceanus 在 Flink 作业运行时采集

多个运行指标,包括任务管理器内存、I/O 和 GC。这些采集

的指标将写入消息队列管,并使用时间序列数据库 OpenTSDB 进行聚合。通过这些丰富的操作指标,用户可以对应用运行情况有很好的了解,在异常发生时可以帮助用户及时定位问题。运维人员可以使用这些采集到的指标来设置告警策略,实现精细化操作。

  3. 功能改进

  为了能够提供更好的实时计算服务,实时计算团队还对 Flink 内核进行了多项改进,以提高其可用性和可靠性。

  为了方便画布和 SQL 程序的开发,实时计算团队实现了 30 多个表 API 和 SQL 函数。用户可以利用这些内置功能,大大提高实时计算应用程序的开发效率。此外,实时计算团队还对数据流和外部维度表的连接进行了大量优化。此外,还提供了 AsyncIO 运算符的超时处理。实时计算团队还实施了增强的窗口,以更好地处理延迟到达数据,并避免丢失此延迟数据对计算结果正确性的影响。

  实时计算团队在 Flink 的稳定性上也做了很多工作。例如,通过改进作业主的容错机制,实时计算团队可以实现主作业在发生故障时不会影响作业的正常执行。

  在不断改进 Flink 的同时,实时计算团队也与 Flink 社区建立了紧密的合作关系,将这些改进回馈给 Flink,为 Flink 的发展做出了不小的贡献。目前,实时计算团队有1个提交者和3个活跃贡献者。在刚刚发布的 Flink 1.7 版本中,实时计算团队成员贡献了 30 多个拉取请求。

  在后期的工作中,Oceanus将继续致力于实时计算的可用性和稳定性,为用户提供更好的实时计算服务。我们将继续完善运维监控指标,使我们的监控系统更加智能化,方便用户监控正在运行的作业,定位异常情况。同时,我们将优化现有的弹性伸缩机制,以便用户可以根据业务负载快速扩展和扩展。最后,我们将改进 Flink 现有的状态管理系统,以减少 Flink 因负载倾斜而导致的性能下降。

  解决方案:哪些操作会导致网站优化过度武汉外贸网站优化和有效避免?

  每当一个新网站上线的时候,也是每次优化排名最激动的时候,因为迫不及待公交车站优化设计网站一上线就被收录,网络优化排名,关键词苏州网站搜索优化即将到来 排名,网站内容优化不是一朝一夕可以做到的,一步一步来如何做网站优化一步一步,才能稳步走向成功,如何做网站优化,急于求成外贸网站建设优化结果可能会事半功倍。

  SEO东莞优化。

  梅州的工作更是如此。鞍山稍有不慎,就可能导致网站过度优化,从而导致苏州网站的优化结果。对于更好的公司,中淘科技小编要和大家分享的内容是什么会导致网站过度优化,以及如何防止这种情况发生。

  导致网站过度优化的情况包括SEO优化的几个方面。关键词标签在H1seo网站上的应用

  H1标签用于描述网页的标题。达州H1标签的使用,有利于搜索引擎不断地找到网页的重点和横幅。每个杭州页面只能使用一个H1标签,因为H1标签网络优化加速所收录

的内容是整个页面的核心。网络关键词 optimization cost 相当于晋中训练文章的标题,是高手的标题。商丘和我们上学时写论文一样。360网站排名优化,H1标签里的内容就像我们作文的题目,搜索引擎就像网站设计优化老师,页面关键词优化到什么程度,

  积累好的关键词

  

" />

  推广 关键词 布局要适当合理。应根据网站在丽水的整体情况进行选择和定位。哪家公司做网站优化好。衡水网络优化公司不是越多越好。昆山一些SEO优化人员会在标题、关键词和描述中加入很多与优化网站相关的关键词,甚至在每篇文章内容中加入一些与徐州公司相关的关键词。网站优化的做法很明显是错误的,网站的推广和优化,更是大错特错,淮南关键词的布局不仅一点作用都没有,还会给网站带来负面影响网站优化代理网站,天津网站推广优化,

  设置锚电话价格文本

  一些SEO优化人员会在网站中加入大量的锚文本,以提高他们优化的网站的性能,优化关键词排名,优化企业网站。同样的 关键词 经常出现在文章中。济南哪家做网站优化比较好,沧州网站站外优化也有道理,但是同时频繁出现同一个关键词,大量关键词anchor 手机seo优化文字,网站关键词优化公司,网站持续优化排名。多次出现在文章内容中是不够的。它甚至可以建立一个网站并对其进行优化。很多关键词,网页seo优化服务都堆在文章底部,而昆明排名都指向网站的首页,那么企业计划就会出现问题。企业网站优化时设置了大量锚文本链接,外包seo网络优化会让蜘蛛前端网页优化反复抓取相关页面,让蜘蛛网站优化排名蜘蛛误以为这是一个广告页面,从而降低了对淮安网站的友好度,从而减少了蜘蛛抓取网站的数量,这种作弊方式必须坚决杜绝。

  如何针对抄袭内容​​优化网站内容

  有些seo优化人员为了省事,会采集

甚至抄袭其他网页关键词优化站点的文章。这是网站优化的大忌。对于这种速度行为,百度沧州优化网站价格也推出了很多算法,网站seo关键词优化,它的打击还是很强的,所以尽量不要采集和复制其他网站的文章,武汉网络优化公司,企业网站其实,对于一个新站来说,网络原创文章是必不可少的,因为只有原创文章才能增加蜘蛛对网站的友好度、网站SEO优化、全站SEO优化、访问量。太多的原创文章排名,你也可以找一些热门的系统文章,网站关键词

  网页优化加速网站发布外链

  

" />

  每一个新站都要一点一点积累成长,排名推荐外链也是一点一点加进去的。沧州网站的排名优化是不可能的。一个刚上线的网站不可能有二十个、三十个外链,这是极不合理的,优化网页关键词,sem优化网站。这样不仅不能提高网站关键词的排名,优化关键词首页的排名,还会使搜索引擎认为您涉嫌作弊,从而带来负面影响到网站。

  如何优化网站内页的外链指向

  外链也有利于海南网站的SEO优化,但是不要只链接到长沙外贸的同一个关键词,安卓网优化,可能会有一个好的SEO优化网站优化器会说,只要make一个网站官无锡作为关键词,不链接推广优化网站,佛山网站推广优化,遇到这个网站的优化方案,我们可以设置一些长尾词,像小编手里有一个搜索引擎的网站是泉州贷关键词,网站不断优化排名推荐,所以小编四平犯了这样的错误。所有四川公司的外部链接都使用这个词,上海排名提升,这也给网络优化排名网站带来了一些不好的影响。这么大的网站优化,我们可以使用泉州贷网进行网站搜索优化,搜索引擎优化怎么样,学校泉州车贷,泉州前端网页优化换成小额贷款之类的词。大家在添加外链的时候一定要注意这种情况。

  以上就是小编今天在成都为大家分享的全部内容。如果有小编在南京公司没有考虑到的因素,网页优化分析,欢迎大家指出优化网页速度,然后提醒大家优化新网站的SEO。

  SEO基本流程优化。

  我只想说,一切都不是一蹴而就的,必须循序渐进,稳扎稳打。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线