Flink的并行度设置
task的parallelism可以在Flink的不同级别上指定。四种级别是:算子级别、执行环境(ExecutionEnvironment)级别、客户端(命令行)级别、配置文件(flink-conf.yaml)级别
* 每个operator、data source或者data sink都可以通过调用setParallelism()方法来指定
* 运行环境的默认并发数可以通过调用setParallelism()方法来指定。env.setParallelism(3);运行环境的并发数可以被每个算子确切的并发数配置所覆盖。
* 对于CLI客户端,并发参数可以通过-p来指定
* 影响所有运行环境的系统级别的默认并发度可以在./conf/flink-conf.yaml的parallelism.defaul项中指定。不建议
当然,你也可以设置最大的并行度
* 你可以通过调用setMaxParallelism()方法来设置最大并发度。
Flink如何确定TaskManager个数?答案:Job的最大并行度除以每个TaskManager分配的任务槽数
Flink on YARN时,TaskManager的数量就是:max(parallelism) / yarnslots(向上取整)。例如,一个最大并行度为10,每个TaskManager有两个任务槽的作业,就会启动5个TaskManager
参考:
个人网站:shuoyizui.com
公众号:写个框架玩
近期在公众号会发布一系列文章,主要是想完成一个简化的MapReduce框架的编写。实现Mapreduce编程模型、任务远程提交、任务分配、任务执行等功能。设计到了动态代理、反射、网络通信、序列化、消息队列、netty、自定义类加载器、多线程、shell等技术点。

浙公网安备 33010602011771号