我正在使用 Flink 进行一些概念验证工作,并且已经达到了我想在4节点集群上尝试各种作业(拓扑?)的程度。
机器:
拓扑结构从3到6个“任务”(工人?螺栓类似物?)不等。我希望这里有人可以提供一些建议的设置。具体做法是:
特别是一项任务:从 Kafka 阅读,其中相关主题有6个分区。我想从这些分区中读取,汇总并写入 Cassandra 。当我在 Storm 中实现这项工作时,它有6个螺栓来读取数据,并且有几倍的写入量。 (IE 6读,18写)
如果 Flink 被我的公司采用,每台机器将运行多个同时工作。在这种情况下,配置参数如何改变?
FWIW:群集是v1.0-SNAPSHOT。
编辑:This似乎很有用。
1 “网络缓冲区数量不足:需要30个,但只有8个可用。网络缓冲区总数目前设置为2048个。”这是否意味着在没有任何事情发生时正在使用2000个缓冲区?
答案 0 :(得分:2)
有多个来源可以帮助您设置正确的设置(见下文)
立即解决您的问题:
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会谈: