flink 集群参数 - 如何设置

flink cluster params - how to set

我正在使用 Flink 进行一些概念验证工作,并且已经到了我想在 4 节点集群上尝试各种工作(拓扑结构?)的地步。

机器:

拓扑从 3 到 6 不等 'tasks'(工人?螺栓模拟?)。我希望这里有人可以提供一些建议的设置。具体来说:

特别是一个任务:从 Kafka 中读取,其中有问题的主题有 6 个分区。我想从这些分区中的每一个中读取、聚合和写入 Cassandra。当我在 Storm 中实施这项工作时,它有 6 个螺栓用于读取数据,而写入数据的螺栓数是其数倍。 (IE 6 读取,18 写入)

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

FWIW:集群是 v1.0-SNAPSHOT。


编辑:This 似乎很有用。

1 "Insufficient number of network buffers: required 30, but only 8 available. The total number of network buffers is currently set to 2048." 这是否意味着在没有任何反应的情况下使用了 2000 个缓冲区?

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

立即解决您的问题:

  • taskmanager.numberOfTaskSlots:将其设置为核心数?
  • taskmanager.heap.mb:"This value should be as large as possible." 96Gb?真的吗?
    基本上是的,但要看情况如果你在集群中手动部署Flink,假设Flink是唯一的系统运行。如果不将此参数设置得尽可能大,那将是一种浪费。对于与其他系统的共享设置,您可能需要考虑使用 YARN。另一方面 运行 在独立集群模式下,您可能想为 OS 保留一些内存,如果您知道还有其他组件 运行,您可能不会将所有内存分配给弗林克。但是,由于 Flink 内部管理内存,所以你应该避免有未使用的内存。

  • parallelism.default:尝试将其设置为 30。出现此错误。
    查看以下配置参数: taskmanager.network.numberOfBufferstaskmanager.network.bufferSizeInBytes(也请查看此处 http://www.slideshare.net/FlinkForward/fabian-hueske-juggling-with-bits-and-bytes?ref=http://flink-forward.org/?post_type=session, here http://de.slideshare.net/robertmetzger1/apache-flink-hands-on and here https://www.youtube.com/playlist?list=PLDX4T_cnKjD3F7oRSov8hT21rXx1SyXf8

  • parallelization.degree.default:我试过调高这个值,但似乎没有任何效果。任务始终显示“1”表示并行度。
    如果我没记错的话,这个参数被 parallelism.default

  • 代替了

查看此链接了解更多背景信息:

一般常见问题解答、Flink 博客和 Flink Forward 讨论: