首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flink窗口拖动流性能

Flink窗口拖动流性能
EN

Stack Overflow用户
提问于 2018-05-29 17:23:01
回答 1查看 558关注 0票数 2

我想了解窗口如何影响Flink作业性能,我正在运行一个由以下运算符组成的flink作业:

作业并行度(4,8,16):自动生成源--> Map1 -->翻滚窗口(10s)--> Map2--> Sink

Flink windowed performance eps 4p,8p,16p

高于性能的作业上限约为每秒50k+-,无论我如何扩展集群形成4 -16个并行度。

当删除作业窗口时,作业可以达到每秒200k。

作业并行度(4-8):自动生成源--> Map1 --> Map2--> Sink

Flink performance no window 4p, 8p

我删除了窗口的逻辑,以消除性能瓶颈的应用程序逻辑,但似乎窗口仍然导致我的整个流性能下降,即使窗口只是一个直通函数。

此屏幕截图显示没有窗口的作业和启用了空窗口的作业的性能。

Empty window shows spike but operator slowed down

流已被封顶,无法进一步缩放。在这种情况下,如何提高性能?

注意:该作业没有外部服务依赖项,也没有关闭检查点。

EN

回答 1

Stack Overflow用户

发布于 2018-06-03 00:27:58

进一步的调查似乎是由keyBy()对keyedStream操作造成的,当流被键控时,性能下降了近40%,并且如果有多个keyedStream,它将继续降低性能。

代码语言:javascript
运行
复制
        DataStream<Tuple2<String, MyObj>> testStream = finalizedStream
            .map(new RichMapFunction<MyObj, Tuple2<String, MyObj>>() {

                @Override
                public Tuple2<String, MyObj> map(MyObj value) throws Exception {
                    return new Tuple2<String, MyObj>(value.getCustomKey(), value);
                }
            });

    KeyedStream<Tuple2<String, MyObj>, Tuple> keyedStream = testStream.keyBy(0);
    keyedStream.map(new MapFunction<Tuple2<String, MyObj>, MyObj>() {

        @Override
        public MyObj map(Tuple2<String, MyObj> tuple) throws Exception {
            return tuple.f1;
        }
    }).name("keyed stream");

不管怎样,我能让表演变得更好?似乎使用键控是不可避免的。我不确定为什么我们要在我们的环境中尝试扩展工作,无论我们提供多少并行度,性能都被限制在一个数字上。当使用nmon进行监视时,CPU利用率和内存显示不是很关键。

任何意见和帮助都将非常感谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50580756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档