当前位置: 首页 > 知识库问答 >
问题:

Flink状态后端密钥原子性和分布

唐焕
2023-03-14

在阅读了flink文档之后(相关部分在下面注明),我仍然没有完全理解原子性和密钥分配。

即考虑一个由keyby->flatmap(包含一个map状态)组成的图,并将并行度设置为1和4个任务槽,flink是否确保每个键在分布式环境中只存在一次(在一个任务槽中),它是原子单元?提前感谢所有的帮助者。

密钥状态被进一步组织成所谓的密钥组。密钥组是Flink重新分配密钥状态的原子单位;关键组的数量与定义的最大并行度完全一样多。在执行期间,键控运算符的每个并行实例使用一个或多个键组的键。

共有1个答案

郦磊
2023-03-14

对于任何给定的并行运算符,具有相同键的所有事件都由相同的运算符实例处理--即,在相同的任务槽中。

Flink将密钥组织成密钥组,每个密钥(及其状态)都与特定的密钥组永久关联。此外,每个任务槽负责处理一个或多个密钥组的密钥。

您引用的文档使用了短语“原子单元”来表示“不可分割”,当考虑到重新调整Flink作业时(即,当并行性被更改时)会发生什么时,这就变得相关了。

有关这个主题的更多内容,请参阅data Artisans博客文章中关于“Flink中的状态和重新缩放有状态流作业”的部分。

 类似资料:
  • 在广播模式的文档中,提到没有RocksDB状态后端: 如果应用程序使用rocksdb作为状态后端,这将如何影响保存点行为?这是否意味着状态在保存点期间不存储,因此不会恢复?

  • 在阅读了Flink的文档并四处搜索后,我无法完全理解Flink的句柄在其窗口中的状态。假设我有一个每小时滚动的窗口,其中包含一个聚合函数,该函数将消息累积到某个java pojo或scala case类中。该窗口的大小将与一小时内进入该窗口的事件数量相关联,还是仅仅与POJO/Case类相关联,因为我将事件累加到该对象中。(例如,如果将10000个味精数成一个整数,大小会接近10000*味精大小还

  • 我想把我的Django前端和后端分开。实际上创建了2个Django服务器。 在前端存储身份验证访问令牌和刷新令牌的最佳方式是什么? 调用API时验证身份验证的最佳方法是什么? 谢谢!

  • 我有一个FlinkV1.2的设置,3个JobManager,2个TaskManager。我想将hdfs用于后端状态和检查点以及zookeeper storageDir 在JobManager日志中 Hadoop作为单个节点集群安装在我在Settings中设置的VM上。为什么Flink要求配置额外的参数?(顺便说一句,官方文件中没有这些内容)

  • 我有一个FlinkV1.2的设置,3个JobManager,2个TaskManager。对于后端状态和检查点以及zookeeper storageDir,我想使用S3桶而不是hdfs 我没有安装hadoop。不确定是否需要这样做,以及是否需要这样做,应该如何/在哪里安装/配置它? 编辑:在使用以下hadoop xml(core-site.xml)配置Flink之后,我并不真正理解IAM部分,而且我

  • 我正在开发一个将文件上传到Azure存储的.NET应用程序。我正在利用https://azure.microsoft.com/en-us/documentation/articles/storage-encrypt-decrypt-blobs-key-vault/教程中所做的客户端加密 应用程序工作,即,我可以成功地上传一个加密的blob到一个选定的存储帐户和容器。 但是,我对RSA密钥的安全性有