flink 集群参数 - 如何设置
flink cluster params - how to set
我正在使用 Flink 进行一些概念验证工作,并且已经到了我想在 4 节点集群上尝试各种工作(拓扑结构?)的地步。
机器:
- 32 核心
- 96g Gb 内存
拓扑从 3 到 6 不等 'tasks'(工人?螺栓模拟?)。我希望这里有人可以提供一些建议的设置。具体来说:
- taskmanager.numberOfTaskSlots:将其设置为核心数?
- taskmanager.heap.mb:"This value should be as large as possible." 96Gb?真的吗?
- parallelism.default:尝试将其设置为 30。出现此错误1。
- parallelization.degree.default:我试过调高这个值,但似乎没有任何效果。任务始终显示“1”表示并行度。
- 人们发现有用/有趣的任何其他设置?
特别是一个任务:从 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.numberOfBuffers
和 taskmanager.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
代替了
查看此链接了解更多背景信息:
- 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 讨论:
我正在使用 Flink 进行一些概念验证工作,并且已经到了我想在 4 节点集群上尝试各种工作(拓扑结构?)的地步。
机器:
- 32 核心
- 96g Gb 内存
拓扑从 3 到 6 不等 'tasks'(工人?螺栓模拟?)。我希望这里有人可以提供一些建议的设置。具体来说:
- taskmanager.numberOfTaskSlots:将其设置为核心数?
- taskmanager.heap.mb:"This value should be as large as possible." 96Gb?真的吗?
- parallelism.default:尝试将其设置为 30。出现此错误1。
- parallelization.degree.default:我试过调高这个值,但似乎没有任何效果。任务始终显示“1”表示并行度。
- 人们发现有用/有趣的任何其他设置?
特别是一个任务:从 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.numberOfBuffers
和taskmanager.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
代替了
查看此链接了解更多背景信息:
- 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 讨论: