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

bttbmeg0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(782)

无状态节点是否意味着彼此独立?你能向hadoop解释一下这个概念吗

oknwwptz

oknwwptz1#

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

bxgwgixi

bxgwgixi2#

我想说的是,计算基础设施中节点的状态性与您所定义的含义略有不同。记住,总是有协调过程在某处运行,所以节点之间没有完全的独立性。
它在计算基础设施中的实际含义是,节点不存储任何关于它们在持久存储上执行的计算的信息。考虑以下情况,您在一些机器上运行master,将任务委派给worker,worker在ram中维护信息,并在任务计算需要时从ram中检索信息。工作人员还将结果写入ram。您可以将工作节点视为无状态的,因为每当工作节点发生故障时(例如,由于断电),它都不会有任何机制允许它从停止点恢复执行。但是,still master将知道节点已经失败,并将任务委派给集群中的另一台机器。
关于hadoop,该体系结构是状态完整的,首先,因为每当作业开始执行时,它都会将所有元数据传输到工作节点(jar文件、分割位置等)。其次,当作业被调度到不包含输入数据的节点上时,它将被传输到该节点。此外,由于故障恢复的原因,中间数据被存储在磁盘上,因此故障恢复机制可以从停止执行的点恢复作业。

相关问题