flink批模式查一张几千万的hive到另一个hive表,一下子起了1000的并行度,怎么降下来?
如果任务的并行度过高,可以考虑通过以下几个方向来调整并行度:
调整输入数据源的并行度:如果输入数据源并行度过高,可以根据数据量、查询复杂度等因素适当调整数据源的并行度。
调整算子(operator)的并行度:可以根据任务的数据量、计算复杂度、硬件配置等因素,适当调整每个算子的并行度。通常来说,并行度设置在100左右是一个比较合适的范围。
避免数据倾斜:如果任务的并行度集中在少数几个算子上,可能会导致数据倾斜问题,可以通过keyBy()和rebalance()等操作来平衡算子间的负载,避免数据倾斜。
你可以通过flink的Web UI来查看任务的运行情况,包括每个算子的并行度、任务的运行状态、数据倾斜等情况,进而根据实际情况来进行调整并行度。另外,如果任务的并行度过高对应用的性能无任何帮助,也会增加集群的压力,因此还需要根据数据量、硬件配置等因素来实际判断并行度的合适范围。
可以设置下参数,类似这样 SET table.exec.hive.infer-source-parallelism.max=20;,此回答整理自钉群“【③群】Apache Flink China社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。