当前位置: 首页 > 知识库问答 >
问题:

Apache Flink如何处理倾斜数据?

孟俊晖
2023-03-14

例如,我有一个很大的字流,想要数每一个字。问题是这些话是歪斜的。这意味着某些词的使用频率会很高,而其他大多数词的使用频率却很低。在storm中,我们可以使用以下方法来解决这个问题。首先对流进行洗牌分组,在每个节点的一个窗口时间内计数本地字,最后更新计数到累积结果。从我的另一个问题中,我知道Flink只支持键控流上的window,否则window操作不会并行。

我的问题是在Flink中有没有一个好的方法来解决这种数据歪斜的问题?

共有1个答案

马华茂
2023-03-14

数据流API当前不支持预聚合。原则上,可以为事件时间窗口添加类似组合器的特性。国际海事组织,这将是一个非常有价值的补充,但还没有做到。

但是,您可以自己实现这个特性。DataStream API提供了类似于Storm Bolts的低级操作员接口。该接口称为OneInputStreamOperator。此运算符类型为您提供了完全的控制权。实际上,内置的运算符(如窗口运算符)也是基于这个类的。

OneInputStreamOperator可以应用如下:

DataStream<Tuple2<String,Integer> inStream = ...
DataStream<String> outStream = inStream
  .transform("my op", BasicTypeInfo.STRING_TYPE_INFO, new MyOISO());
 类似资料:
  • 打开数据        在“倾斜摄影”菜单栏中点击“打开数据”,找到本地倾斜摄影索引(lfp)文件存放位置,点击打开osgb转换后的lfp格式倾斜摄影数据文件(具体转换步骤见“倾斜摄影”菜单栏中的“数据转换”),该lfp文件包含三维模型所在的经度、纬度、高度值,便于倾斜摄影三维模型在地球上进行定位。支持倾斜摄影三维模型格式为smart3d生成的osgb格式。        打开后数据效果如下图。可

  • 本文向大家介绍用mapreduce怎么处理数据倾斜问题?相关面试题,主要包含被问及用mapreduce怎么处理数据倾斜问题?时的应答技巧和注意事项,需要的朋友参考一下 解答: 数据倾斜:map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条

  • 添加地标        其使用原理同6.1.1 模型平移        在LSV中可以对模型进行平移操作,一般用于将目标模型进行位置调整,或者将其高程进行调整(有些模型加载出来可能贴于地标所以无法显示出来,可通过调整高程使其显示)。        先选择自己所要平移模型的图层之后点击选择模型所平移的参考点的起点与终点,并且可对效果进行预览:        之后同样的在选择所需要平移模型的图层后可对

  • 添加地标        其使用原理同6.1.1 模型平移        在LSV中可以对模型进行平移操作,一般用于将目标模型进行位置调整,或者将其高程进行调整(有些模型加载出来可能贴于地标所以无法显示出来,可通过调整高程使其显示)。        先选择自己所要平移模型的图层之后点击选择模型所平移的参考点的起点与终点,并且可对效果进行预览:        之后同样的在选择所需要平移模型的图层后可对

  • 问题内容: 有谁知道如何用scipy绘制偏态正态分布?我认为可以使用stats.norm类,但我不知道如何使用。此外,如何估计描述一维数据集偏斜正态分布的参数? 问题答案: 根据Wikipedia的描述, 如果你想找到一个数据集的使用规模,位置和形状参数,例如使用,并且, 应该给你类似的东西,

  • 选择索引        在“倾斜摄影”菜单栏中点击“打开数据”,找到本地倾斜摄影索引(lfp)文件存放位置,点击打开osgb转换后的lfp格式倾斜摄影数据文件(具体转换步骤见“倾斜摄影”菜单栏中的“数据转换”),该lfp文件包含三维模型所在的经度、纬度、高度值,便于倾斜摄影三维模型在地球上进行定位。支持倾斜摄影三维模型格式为smart3d和大疆智图生成的osgb格式。        打开后数据效果