Flink筛选重要配置参数

1.简单介绍一下flink背景

随着科技的发展,大数据框架处理海量数据越来越流行。有状态流计算将会逐步成为企业作为构建数据平台的架构模式,而目前从社区来看,能够满足的只有Apache Flink。Flink通过实现Goolge Dataflow流式计算模型实现了高吞吐、低延迟、高性能兼具实时流式计算框架。同时Flink支持高度容错的状态管理,防止状态在计算过程中因为系统异常而出现丢失。Flink具有先进的架构理念,诸多的优秀特性,以及完善的编程接口,而Flink也在每一次的Release版本中,不断推出新的特性。在未来,Flink将不仅作为实时流式处理的框架,更多的可能会成为一套实时的状态存储引擎,让更多的用户从有状态计算的技术中获益。因此批流融合的Flink大数据处理框架越来越受欢迎。
Apache Flink是一个开放源码的分布式数据处理引擎,基于Google Dataflow模型。作为新型的大数据框架,Flink有许多对性能影响较大的配置参数。

2.flink1.7.2参数初步筛选

Flink1.7提供了300多项配置参数,主要分类为:核心,JobManager,TaskManager,分布式协调(通过Akka),REST,Blob服务器,心跳管理器,SSL设置,网络通讯(通过Netty),Web前端,文件系统,编译/优化,运行时算法,Resource Manager,YARN,Mesos,HA,Zookeeper安全。
详细的配置参数请参照官方翻译flink配置参数
内容如下图:
在这里插入图片描述为了更纯粹地分析Flink框架本身的特性,我们只关注那类直接影响Flink框架本身的配置,记作“native”configuration,因此过滤了Flink on mesos、Flink on yarn等托管于第三方的相关配置;在这类“native”configuration中,有许多与性能无关的配置如端口号设置,web UI配置等,也有50项与性能相关的配置。
具体初步筛选的配置参数如下:

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3.筛选重要配置参数

修改flink的配置文件conf/flink-conf.yaml,将50个参数的默认值写到配置文件中。我们对这些配置进行了控制变量测试,即仅变换单一配置项的值观察workload的性能变化,运行Hibench的flink程序identity,获取程序运行过程中的CPU,内存,磁盘,和网络四个方面数据。主要包括进程的CUP利用率,进程的内存利用率,总的内存利用率,buffers,cached,进程io的write_bytes,磁盘io的read_bytes,write_time,网络io 的bytes_sent,共9个资源指标如下:
在这里插入图片描述
实验环境
节点配置
1个master和1个slave,其配置为Linux16.0.4系统、内核数为4,型号Inter®Core™i5-7500 CPU @ 3.40GHz、8GB的物理内存

软件环境
hadoop2.7.7/flink1.7.2/Hibench7.0/kafka_2.11-2.3.0/zookeeper-3.4.8

实验过程

  1. 对初步筛选的50个配置参数手动分配n个可取的波动值
  2. 每个参数的不同波动值及默认配置参数为一组,运行hibench程序的identity程序,在运行过程中获取资源指标
  3. 其它参数取默认值,变动组的参数不同波动值分别运行100次
  4. 计算每个参数不同波动值收集的各个计算资源的平均值,与默认参数平均值进行对比,筛选重要参数

注:本方法是采用的单一变量控制法,没有考虑配置参数之间的相互影响,在下一阶段会进一步考虑。

4.筛选参数实验结果

实验结果:通过实验发现,选取得9个计算资源指标中有四个在随着时间增加,其余5个指标在不断波动。有process_cpu%,process_memory%,buffers,cached,process_io_write_bytes。将50个配置参数得不同取值对应的计算资源的指标平均值与默认参数对应的计算资源的指标平均值进行对比,不同配置参数的不同取值对应的进程CPU利用率波动图如下图1,进程内存利用率如图2。
图1该散点图为初步筛选的50个配置参数,每个配置参数对应的不同取值,每个取值运行100次程序获取的进程的CPU利用率的平均值。黑点表示平均的CPU利用率,蓝线表示50组默认参数测的进程CPU利用率的平均值。
在这里插入图片描述该散点图为初步筛选的50个配置参数测得的进程的内存利用率波动图。黑点表示不同参数不同取值对应的进程的内存利用率的平均值,红线表示50组默认参数测得的进程内存利用率的平均值。

通过实验获取的不同配置参数的不同取值在运行100次程序过程中收集的计算资源指标,我们选取进程CPU利用率,进程内存利用率,总内存的buffers,总内存的cached,进程io的写字节数来作散点图(展示两个),观察配置参数的不同取值对计算资源的影响情况。我们筛选出来的重要配置参数共28项。
重要参数如下:
参数

我们对50项初始筛选配置参数进行了控制变量测试,即仅变换单一配置项的值观察identity的性能变化,收集了process_cpu%,process_memory%,buffers,cached,process_io_write_bytes,memory%,disk_io_read_bytes,disk_io_write_time,snet_io_bytes_sent共9个计算资源指标,最终选择28个性能相关性较强的配置,这28个配置项可以分为3类,jobmanager、taskmanager和network。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flink的安装目录下,主要有以下几个配置文件: 1. flink-conf.yaml:该文件是Flink的主要配置文件,用于设置Flink的全局配置。 2. 日志的配置文件:用于配置Flink的日志打印格式、级别等相关参数。 3. zk配置:用于配置Flink与ZooKeeper的连接信息,以便Flink可以使用ZooKeeper来实现高可用和容错机制。 4. Flink SQL Client配置:用于配置Flink SQL客户端的相关参数,如连接信息、默认目录等。 除了以上配置文件,根据table程序的需要,还可以通过配置一些必要的参数来优化表操作。举个例子,对于无界流程序,可能需要确定必要的状态大小上限。 在Java代码中,可以使用TableEnvironment的getConfig()方法获取Flink配置对象,然后通过配置对象的setString()方法来设置底层的键值对配置。例如,可以通过以下方式设置mini-batch优化相关的配置参数: ```java // 实例化table environment TableEnvironment tEnv = ...; // 访问flink配置 Configuration configuration = tEnv.getConfig().getConfiguration(); // 设置底层key-value配置 configuration.setString("table.exec.mini-batch.enabled", "true"); // 开启mini-batch优化 configuration.setString("table.exec.mini-batch.allow-latency", "5 s"); // 缓存输入数据5秒 configuration.setString("table.exec.mini-batch.size", "5000"); // 每个聚合操作任务可以缓存的最大数据条数为5000条 ``` 通过以上配置,可以启用mini-batch优化,并设置相应的缓存参数,以提高表操作的性能和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flink 从 0 到 1 学习 —— Flink 配置文件详解](https://blog.csdn.net/tzs_1041218129/article/details/101104375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [flink-sql查询配置与性能优化参数详解-1.14](https://blog.csdn.net/u012443641/article/details/127900815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值