zoukankan      html  css  js  c++  java
  • 重要 : 优化flink的四种方式

    640?wx_fmt=png

    flink这个框架在逐步变为流处理的主流。本文,我们将针对flink性能调优讲四种不同的方法。加浪尖微信 158570986,拉入大数据微信交流群。

    640?wx_fmt=png

    640?wx_fmt=png使用flink tuples

    当使用groupby,join,后者key这类算子的时候,FLink提供了很多种访问你key的方法。

    1. 使用key selector

    
    
    
    
    
    
    
    
    

    第三种方法虽然给了最好的性能,但是可读性很差。比如,我们的代码有可能写成下面这样:

    
    
    
    
    

    640?wx_fmt=png重利用flink对象

    
    
    
    
    
    
    
    

    640?wx_fmt=png使用函数注解

    另外一个优化Flink任务的方法是提供一些关于你UDF如何处理输入数据的一些信息。由于Flink无法解析和理解代码,因此您可以提供有助于构建更高效执行计划的关键信息。 我们可以使用三种注解:

    举个例子,ForwardedFields注解使用如下:

    
    
    
    
    
    
    
    
    
    

    flink还有NotForwardedFieldsFirst,?NotForwardedFieldsSecond,?ReadFieldsFirst, 和?ReadFirldsSecond等注解。

    640?wx_fmt=png优化join

    当Flink处理批量数据的时候,每台机器只是存储了集群的部分数据。为了执行join,Flink需要找到两个数据集的所有满足join条件的数据。为了实现这个目标,Flink需要将两个数据集有相同key的数据发送到同一台机器上。有两种策略:

    1. repartition-repartition strategy

    在该情况下,两个数据集都会使用key进行重分区并使用通过网络传输。这就意味着假如数据集太大的话,网络传输数据集将耗费大量的时间。

    2. broadcast-forward strategy

    在该情况下,一个数据集不动,另一个数据集会copy到有第一个数据集部分数据的所有机器上。

    如果使用小数据集与大数据集进行join,可以选择broadcast-forward策略,中年服装将小数据集广播,避免代价高的重分区。

    
    
    
    

    也可以使用下面几个提示:

    [完 译自https://dzone.com/articles/four-ways-to-optimize-your-flink-applications]

    推荐阅读:

    从滴滴flinkCEP说起

    必读|spark的重分区及排序

    基石 | Flink Checkpoint-轻量级分布式快照

    更多大数据视频,技术文档,调优,源码解读欢迎扫码加入知识星球

    640?wx_fmt=jpeg


    文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82455524

  • 相关阅读:
    MyEclipse 2014 破解图文详细教程
    Eclipse构建Maven项目
    Eclipse构建Maven项目
    Spring--环境配置
    Spring--环境配置
    Sencha Touch2 -- 11.1:定义具有关联关系的模型
    Sencha Touch2 -- 11.1:定义具有关联关系的模型
    Android百度定位API的使用
    Android百度定位API的使用
    Java基础学习总结(64)——Java内存管理
  • 原文地址:https://www.cnblogs.com/mazhujun/p/9633766.html
Copyright © 2011-2022 走看看