hadoop中zookeeper,日志节点任务和仲裁日记管理器的区别是什么?

时间:2014-09-25 12:13:39

标签: hadoop apache-zookeeper journal

在研究多个网站和视频中的材料时,我对3个hadoop组件ZooKeeper,Journal Node和Quorum Journal Manager的功能和差异感到困惑。

有谁能解释一下上述每一个的发明原因以及上述三个组成部分的目的和功能的差异?

提前致谢。

3 个答案:

答案 0 :(得分:5)

想到这一点,zookeeper是一群人,每个人都被指派监视工厂并协调他们,日志节点是所有工厂经理可以检查他人状态和协调的地方。 QJM是两者的组合,用于HA以便在故障转移时更好地协调。

zookeeper协调hbase regionservers和其他需要zookeeper的hadoop模块。

日志节点使用namenode协调hadoop datanode。

QJM使用日记节点

使用的技术协调区域服务器 在分布式设置的情况下,

在核心hadoop设置上只需要日志节点

答案 1 :(得分:2)

首先,法定人数意味着需要多数人作出决定。所以,当你看到" quorum"你应该想到一个群集,说;多主机配置。您可以为Zookeeper和Journal Nodes听到这个术语。

对其功能的简短描述将有助于您区分其目的。

Zookeeper :Zookeeper是应用程序需要经常检查的信息的中央同步应用程序。应用程序可能需要许多信息,如命名结构,信息,配置信息(或简单配置)等。最常见的情况是应用程序的配置。当您更改与80个服务器相关的配置时,要将此更改同步到所有节点,您需要开发同步服务。应用程序本身可能具有此功能。但想象一下,在您的环境中再添加12个应用程序。您需要逐个处理每个应用程序的同步服务。这就是zookeeper的用武之地.Zookeeper可以自行处理所有这些信息。如果将其设置为群集(需要奇数个主机。why?),您将拥有Zookeeper的高可用性(故障转移案例)并具有Zoopeeker仲裁。

日记节点:在高可用性Hadoop集群中,您有多个以主动/被动模式运行的Namenode。活动名称节点通知日志节点更改。按名称节点向日志节点询问有关更改的内容。就像Zookeeper的情况一样,如果你设置为群集配置(这里也需要奇数个主机。why?),你也可以获得Journal Node功能的高可用性并拥有Quorum Journal Manager。

实际上我没有听到它们被设置为单个主机或节点,除了实验室用途(vm in pc)。

答案 2 :(得分:0)

1。 Zookeeper

  

ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用

Zookeeper在Hadoop生态系统中的作用:

在Hadoop Namenode故障转移过程中,ZooKeeper已被用于避免裂脑情况,因此名称节点状态不会因故障转移而分歧。

有关详细信息,请参阅此帖:

How does Hadoop Namenode failover process works?

2. JournalNode(用于Namenode故障转移过程)

  

为了让备用节点保持其状态与Active节点同步,两个节点都与一组名为“JournalNodes”(JN)的单独守护进程通信。

JournalNode计算机 - 运行JournalNodes的计算机。 JournalNode守护程序相对轻量级,因此这些守护程序可以合理地与其他Hadoop守护程序并置在机器上,例如 NameNodes JobTracker YARN ResourceManager < / strong>即可。

注意:必须至少有3个 JournalNode 守护程序,因为编辑日志修改必须写入大多数JN。这将允许系统容忍单个机器的故障

3. Quorum Journal Manager(QJM)允许在活动和备用NameNodes之间共享编辑日志

重要的是,使用 Quorum Journal Manager 时,只允许一个 NameNode 写入 JournalNodes ,因此没有从裂脑情景中破坏文件系统元数据的可能性