我正在使用Apache Flink 1.2.0。根据生产准备清单(https://ci.apache.org/projects/flink/flink/flink/flink/flink-docs-release-1.2/ops/production_heady.html)建议为操作员设置UID,以确保为节省的位置。>根据DOC的说法,我找不到flatuid()和setuidhash()的setuid()方法。说
uid
"Sets an ID for this operator.
The specified ID is used to assign the same operator ID across job submissions (for example when starting a job from a savepoint)."
uidhash
"Sets an user provided hash for this operator. This will be used AS IS the create the JobVertexID.
The user provided hash is an alternative to the generated hashes, that is considered when identifying an operator through the default hash mechanics fails (e.g. because of changes between Flink versions)."
实际上应该在flatmap上设置哪一个,例如uid()或setuidhash()?或两者?
uid()
方法建议在这种情况下使用。 setUidHash()
应仅使用作为解决方法,以解决使用默认UID而不是用户定义的作业创建的作业。它在Javadoc中说:
这应用作解决方法或用于射击故障。提供的哈希需要是唯一的每个转型和工作。否则,提交将失败。此外,您无法将用户指定的哈希分配给操作员链中的中间节点,因此可以让您的工作失败。