什么是无状态节点? Hadoop 节点如何是无状态的?

What is stateless node? How Hadoop nodes are stateless?

无状态节点是指相互独立吗?你能向 hadoop

解释这个概念 w.r.t

我想说的是,计算基础设施中节点的状态与您定义的含义略有不同。请记住,某处始终存在协调过程运行,因此节点之间没有完全独立。

它在计算基础设施中的实际含义是,节点不存储有关它们在持久存储上执行的计算的任何信息。考虑以下情况,您在某台机器上有 master 运行 将任务委派给工作人员,工作人员在 RAM 中维护信息,并在需要进行任务计算时从 RAM 中检索它。工作人员还将结果写入 RAM。您可以将工作节点视为无状态的,因为每当工作节点发生故障(例如断电)时,它都不会有任何机制允许它从停止点恢复执行。但是master仍然会知道该节点发生故障并将任务委托给集群中的另一台机器。

关于 Hadoop,该体系结构是有状态的,首先,因为每当作业开始执行时,它会将所有元数据传输到工作节点(jar 文件、拆分位置等)。其次,当作业被调度到不包含输入数据的节点上时,它将被转移到那里。此外,中间数据存储在磁盘上,正是出于故障恢复的原因,因此故障恢复机制可以从执行停止的位置恢复作业。

解释如下:每个 mapper/reducer 都不知道所有其他 mappers/reducers(即关于他们的当前状态,他们的特定输出,如果有的话,等等)。这种无状态对于某些数据处理工作负载(例如图形数据)来说不是很好,但可以轻松并行化(特定的 map/reduce 任务可以在任何节点上 运行,这意味着失败的 mapper/reducer 不是问题,只需在相同的输入 split/mappers' 输出上启动一个新的)。