Hadoop 2.x中辅助名称节点的使用和高可用性

Hadoop 2.x中辅助名称节点的使用和高可用性,hadoop,hdfs,hadoop2,Hadoop,Hdfs,Hadoop2,你能帮我解决以下情况吗 1) 在使用Hadoop V2时,我们是否在生产环境中使用辅助NameNode 2) 对于Hadoop V2,假设我们在主动/被动连接中使用多个名称节点以实现高可用性,并且当编辑日志文件越来越大时 编辑日志如何应用于fsimage?如果是这样,那么在启动Namenode期间,将巨大的编辑日志应用到Namenode将非常耗时?(为了解决这个问题,我们在hadoop v1中使用了Secondary NameNode)1)在使用hadoop V2时,我们在生产环境中使用Seco

你能帮我解决以下情况吗

1) 在使用Hadoop V2时,我们是否在生产环境中使用辅助NameNode

2) 对于Hadoop V2,假设我们在主动/被动连接中使用多个名称节点以实现高可用性,并且当编辑日志文件越来越大时

编辑日志如何应用于fsimage?如果是这样,那么在启动Namenode期间,将巨大的编辑日志应用到Namenode将非常耗时?(为了解决这个问题,我们在hadoop v1中使用了Secondary NameNode)

1)在使用hadoop V2时,我们在生产环境中使用Secondary NameNode吗?

这完全取决于生产环境设置的方式。如果您将Hadoop V2与HA一起使用,您不需要在生产中使用Secondary NameNode,因为您的从属NameNode将以最佳方式执行与Secondary NameNode相同的任务。但如果您的生产设置没有利用NameNode HA,则必须使用辅助NameNode进行检查点。有关这方面的更多信息,请参阅《恶魔》

2)对于Hadoop V2,假设我们在主动/被动连接中使用多个名称节点以实现高可用性,并且当编辑日志文件越来越大时,

据我所知,您主要关心的是“如何在Hadoop V2中使用NameNode HA管理编辑日志?”

答案如下:编辑日志管理可以通过仲裁日志管理器(QJM)或NFS共享存储完成

使用QJM,有一组名为JournalNode(JN)的恶魔正在与活动的NameNode通信。此组持续查找活动NameNode所做的任何更新并保持状态。备用名称节点不断从JNs获取编辑日志更新,并维护更新后的编辑日志文件

使用NFS共享存储,活动NameNode和备用NameNode都可以访问共享存储(即网络文件系统)上的特定目录。如果NameNode完成了任何更新,它会将事件记录到共享目录中。另一方面,备用名称节点在同一共享目录中查找更新的名称,并同时更新编辑日志


我希望这有助于……

回答您的问题:

1)在使用Hadoop V2时,我们是否在生产环境中使用Secondary NameNode?

如果部署备用名称节点以实现名称节点的高可用性,则生产环境中不需要辅助名称节点

2)在没有辅助节点的情况下,如何将编辑日志应用于fsimage?

要回答此问题,您必须了解Hadoop是如何以两种不同的方式实现高可用性的:及

但在这两种方法中,QJM(Quorum Journal Manager)是首选

在典型的HA集群中,两台独立的计算机被配置为NameNodes。在任何时间点,NameNodes中只有一个处于活动状态,另一个处于备用状态。活动NameNode负责集群中的所有客户端操作,而备用节点只是充当从节点,在必要时保持足够的状态以提供快速故障切换

为了使备用节点保持其状态与活动节点同步,两个节点都与一组称为“JournalNodes”(JN)的独立守护进程通信

当活动节点执行任何名称空间修改时,它会将修改记录持久地记录到这些JN中的大多数。备用节点从JNs中读取这些编辑并应用到自己的名称空间

在发生故障转移的情况下,备用设备将确保在将自身升级到活动状态之前已从JournalNodes读取所有编辑。这可确保在发生故障转移之前,命名空间状态完全同步

对于HA集群来说,一次只有一个NameNode处于活动状态是至关重要的。ZooKeeper被用来避免大脑分裂的情况,这样名称节点的状态就不会因为故障转移而出现分歧


我已经在另一个StackOverFlow问题中详细解释了Name node的故障切换过程:

非常感谢您的详细解释。非常感谢您的详细解释。