java – flink cluster params – 如何设置

我正在与Flink做一些概念验证工作,并且已经达到了我想在4节点集群上尝试各种工作(拓扑?)的程度.

机:

> 32核心
> 96g Gb RAM

拓扑结构从3到6个“任务”(工人?螺栓类似物?)不等.我希望这里有人可以提供一些建议的设置.特别:

> taskmanager.numberOfTaskSlots:将其设置为#核心数?
> taskmanager.heap.mb:“这个值应该尽可能大.” 96GB?真?
> parallelism.default:尝试将此设置为30.得到此错误1.
> parallelization.degree.default:我试过提高这个值,但似乎没有任何效果.对于并行性,任务总是显示“1”.
>人们发现有用/有趣的任何其他设置?

特别是一项任务:从Kafka读取有问题的主题有6个分区.从这些分区中我想读取,聚合并写入Cassandra.当我在Storm中实现这项工作时,它有6个螺栓来读取数据,有几次写入. (IE 6读,18写)

如果Flink被我的公司采用,每台机器将运行多个同时工作.在这种情况下,配置参数如何改变?

FWIW:群集是v1.0-SNAPSHOT.

编辑:This似乎很有用.

1“网络缓冲区数量不足:需要30个,但只有8个可用.网络缓冲区总数目前设置为2048”.这是否意味着在没有任何事情发生时正在使用2000个缓冲区?

最佳答案 有多个来源可以帮助您设置正确的设置(见下文)

立即解决您的问题:

> taskmanager.numberOfTaskSlots:将其设置为#核心数?

> taskmanager.heap.mb:“这个值应该尽可能大.” 96GB?真?
是的,但它取决于如果在群集中手动部署Flink,则假定Flink是唯一运行的系统.如果不使此参数尽可能大,那将是一种浪费.对于与其他系统的共享设置,您可能需要考虑使用YARN.在以独立群集模式运行的手上,您可能希望为操作系统留下一些内存,如果您知道其他组件正在运行,则可能不会将所有内存分配给Flink.但是,由于Flink在内部管理内存,您应该避免使用未使用的内存.
> parallelism.default:尝试将此设置为30.出现此错误.
看看下面的配置参数:taskmanager.network.numberOfBuffers和taskmanager.network.bufferSizeInBytes(这里也看看http://www.slideshare.net/FlinkForward/fabian-hueske-juggling-with-bits-and-bytes?ref=http://flink-forward.org/?post_type=session,这里是http://de.slideshare.net/robertmetzger1/apache-flink-hands-on,这里是https://www.youtube.com/playlist?list=PLDX4T_cnKjD3F7oRSov8hT21rXx1SyXf8)
> parallelization.degree.default:我试过提高这个值,但似乎没有任何效果.对于并行性,任务总是显示“1”.
如果我没错,这个参数被parallelism.default取代

查看此链接以获取更多背景信息:

> https://flink.apache.org/faq.html#what-is-the-parallelism-how-do-i-set-it
> https://ci.apache.org/projects/flink/flink-docs-master/setup/config.html#common-options
> https://flink.apache.org/news/2015/05/11/Juggling-with-Bits-and-Bytes.html

一般常见问题解答,Flink博客和Flink Forward会谈:

> https://flink.apache.org/faq.html
> https://flink.apache.org/blog/
> http://flink-forward.org/?post_type=session

点赞