Flink任务参数调整
目的
使用yahoo- streaming-benchmark工具测试时,测试脚本中也有相关Flink配置需要修改,这些配置都在stream-bench-hdp.sh里,需要对这些参数根据实际情况调整。
方法
在stream-bench-hdp.sh文件中搜索以下参数并修改:
参数 |
建议值 |
描述 |
---|---|---|
Partitions |
Kafka服务节点上磁盘数目的2~3倍。 |
该值为Kafka的分区数目,但在修改该值的同时,必须同步修改Flink任务启动时的两个并发度值。这是因为前面那个Flink任务是Flink随机生成数据,并且写入Kafka中,所以Flink并发度必须<=Kafka的Partitions数目,不然将会无法写入。而后者是Flink消费Kafka数据,虽然并发度不受Partitions数目限制,但尽量将Flink两个任务并发度保持一致进行测试。由于Flink在向Yarn提交任务的时候,已经将slot、内存、taskmanager等分配完毕,所以此时Flink能够利用的资源是有限的。而-p后的并发度参数,就是需要占用taskmanager slot的参数。该用例需要两个进程同时运行,所以Partitions参数不能超过总slot的1/2。即Partitions <= -n(taskmanager) * -s(slot) / 2, 并发度对Flink性能的影响是比较大的,而且也没有太清晰的规律。一般来说,随Partitions增加,时延的变化是先降低,再到一个平台期,最后再上升。 |
Load |
根据实际调整。 |
数据量,该值唯一控制了单位时间的吞吐量,而当TEST_TIME固定的时候,设置Load即设置了该次用例运行的吞吐量(在Flink引擎足够处理的情况下)。所以Flink测试的性能数据有两种观察方式。
|
TOPIC |
ad-event{$partitions} |
该参数即为Kafka topic名称,不同的partition数目,必须修改不同的topic名称,一般采取ad-event{$partitions}的命名方式以避免重复。 |
TEST_TIME |
240 |
测试时间,一般都固定时间为240s。 |