flink cluster params - 如何设置

时间:2015-11-08 01:20:54

标签: java cassandra apache-kafka apache-flink

我正在使用 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个缓冲区?

1 个答案:

答案 0 :(得分:2)

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

立即解决您的问题:

  • taskmanager.numberOfTaskSlots:将其设置为核心数量?
  • taskmanager.heap.mb:“这个值应该尽可能大。” 96GB?真的吗?
    bacally yes,但它取决于如果在群集中手动部署Flink,则假定Flink是唯一运行的系统。如果不使此参数尽可能大,那将是一种浪费。对于与其他系统的共享设置,您可能需要考虑使用YARN。在以独立群集模式运行的手上,您可能希望为操作系统留下一些内存,如果您知道其他组件正在运行,则可能不会将所有内存分配给Flink。但是,由于Flink在内部管理内存,因此应避免使用未使用的内存。

  • parallelism.default:尝试将此设置为30.出现此错误。
    查看以下配置参数: select count(*) from ( select id,name,count from ( select id as id , name as name, count as count from table1 union select id as id , name as name, count as count from table2 ) ) taskmanager.network.numberOfBuffers(另请查看此处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” 如果我没有错,则此参数已替换为 taskmanager.network.bufferSizeInBytes

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

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