当前位置: 首页 > news >正文

wordpress搭建的知名网站聊城化工建设学校

wordpress搭建的知名网站,聊城化工建设学校,深圳网站seo地址,有的网站在浏览器打不开怎么办微博机器学习平台使用 Flink 实时处理用户行为日志和生成标签#xff0c;并且在生成标签后写入存储系统。为了降低存储系统的 IO 负载#xff0c;有批量写入的需求#xff0c;同时对数据延迟也需要进行一定的控制#xff0c;因此需要一种有效的消息聚合处理方案。 在本篇文…微博机器学习平台使用 Flink 实时处理用户行为日志和生成标签并且在生成标签后写入存储系统。为了降低存储系统的 IO 负载有批量写入的需求同时对数据延迟也需要进行一定的控制因此需要一种有效的消息聚合处理方案。 在本篇文章中我们将详细介绍 Flink 中对消息进行聚合处理的方案描述不同方案中可能遇到的问题和解决方法并进行对比。 基于 flatMap 的解决方案 这是我们能够想到最直观的解决方案即在自定义的 flatMap 方法中对消息进行聚合伪代码如下 对应的作业拓扑和运行状态如下 该方案的优点如下 逻辑简单直观各并发间负载均匀。flatMap 可以和上游算子 chain 到一起减少网络传输开销。使用 operator state 完成 checkpoint支持正常和改并发恢复。 与此同时由于使用 operator state因此所有数据都保存在 JVM 堆上当数据量较大时有 GC/OOM 风险。 使用 Count Window 的解决方案 对于大规模 state 数据Flink 推荐使用 RocksDB backend并且只支持在 KeyedStream 上使用。与此同时KeyedStream 支持通过 Count Window 来实现消息聚合因此 Count Window 成为第二个可选方案。 由于需要使用 KeyedStream我们面临的第一个问题就是如何生成 key。一个比较自然的想法是直接使用随机数伪代码示例如下 对应的作业拓扑如下 然而实际上线测试时出现了数据倾斜不同并发间会出现负载不均部分 task 接收不到数据从而 TPS 为 0: 在我们的场景下除了有批量写入降低 IO 的需求对数据延迟也需要控制当 key set 太大时每个 key 累积指定数据条数的时间将增加会导致数据写入的延迟增大因此我们需要控制 key set 的大小。经过分析当 key set 较小时Flink 默认的数据分发策略在并发间分布不均从而导致了上述数据倾斜的问题。下面我们从源码级别对此进行说明。 首先Flink 为了保证从 state 中恢复数据时产生最小的 IO引入了 key group 的概念。Key group 数目等于最大并发数max parallelism取值范围是 128-32768。当做数据分发的时候key 会按照规则被分发到 key group 里面相关代码如下所示 keyGroup-KeyGroupRangeAssignment.assignToKeyGroup(key,maxParallelism); 然后key group 会按照规则被分发到每个 task 上代码示例如下 Task-String.valueOf(KeyGroupRangeAssignment.computeOperatorIndexForKeyGroup(maxParallelism, parallelism, keyGroup)); 通过 debug 可以发现当 key 的数量较小时该分发策略会导致 key 在 task 之间分配不均匀测试代码如下 输出结果如下 {04, 14, 21} {0651, 1686, 2710} 可以看到当只有 10 个 key 时并发间分布很不均匀但当 key 的数量增加到 2048 时就相对均匀了。 在了解了 key 的分发策略之后我们可以相应的调整 key 的生成规则来达到指定并发度和 key set 大小前提下的数据均匀如下述代码所示 我们利用 maxParallelism 和 parallelism 生成 key并将其存储到一个大小为 parallelism 的 map 里以 taskid 作为 map key 每个 task 对应的 key list 作为 value来保证每个 taskid 对应的 list 都存储了相同数量的 key。 最后再将 map 打平存储到一个数组里。在使用的时候我们可以从该数组里随机取数来作为key就能达到平均分配的目的了。 该方案的执行效果如下 可以看到数据倾斜的问题得以解决每个任务的负载都比较均匀。但需要注意的是由于引入了 key by因此会有数据 shuffle对比 flatmap 方案会有额外的网络开销。另外由于生成 key 的规则和实际并发度有关因此该方案不支持改并发恢复或者说如果修改并发那么在 restore 的时候会发生数据错乱的问题这一点需要尤为注意。 方案对比和总结 最后我们将两种解决方案的优缺点对比总结如下 在数据量不大且内存充足的情况下建议使用 flatmap 方案在数据量较大且可以保证不修改并发的情况下建议使用 count window 方案并使用 RocksDB 进行 state数据存储在数据量较大且需要修改并发的情况下当前给出的两种方案都无法解决需要寻求新的解决方案。 作者介绍 曹富强、张颖微博机器学习研发中心-系统工程师。现负责微博机器学习平台数据计算模块主要涉及实时计算 Flink、Storm、Spark Streaming离线计算 Hive、Spark 等。目前专注于 Flink 在微博机器学习场景的应用。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.lebaoying.cn/news/26859.html

相关文章:

  • 上海网站模板flash源文件网站
  • 网站规划具体内容上海房产网二手房出售信息
  • 广州做网站要多少钱自己建网站需要怎么做
  • 广告设计网站官网佛山营销网站建设多少钱
  • 电脑十大免费游戏网站视频拍摄剪辑岗位职责及要求
  • 电商网站开发建设深圳服务网站建设
  • 企业网站本身应该就是企业( )的一部分国外教育网站模板
  • ppt模板免费下载网站 知乎国外平面设计作品集
  • 公司做网站 分录中国建材网官方网站
  • 将制作好的网站上传去因特网帝国cms如何做网站
  • 秦皇岛的网站建设公司网站开发未来发展趋势
  • 手机建站程序免费下载电商网站有哪些类型
  • 深圳网站的设计公司怎样进行网络推广效果更好
  • 做网站的动态图片大连建网站网站制作
  • 江西做网站的公司哈尔滨网站设计公司电话
  • 神马网站可以做兼职wordpress个人博客
  • 建一个网站难不难如何设计网站中的上传功能
  • 长治建设网站公司网站门户怎么建设
  • 旅游网站怎么做新媒体广告代理加盟
  • seo还有前途吗seo成都
  • 织梦做的网站打包在dw修改广州网页设计学校有哪些
  • wordpress文字环绕图片网站关键词优化推广哪家好
  • 企业做网站 里面都写什么微信小程序游戏开发一个多少钱
  • ps网站建设教程视频网页设计与制作字体设置
  • 高校网站一般采用什么网页布局企业培训课程设计
  • 网站页面设计效果图嘉陵 建设 摩托车官方网站
  • 网站建设后台怎么弄苏州做网站专业的公司
  • 台州免费做网站wordpress win2003
  • 域名交易网站建设dw建网站怎么做
  • 做一个网站的基本步骤太原自动seo