在hadoop生态系统中,我们有NameNode和SecondaryNameNode,NameNode负责管理群集中的所有可用数据,因此我的问题是,当NameNode宕机时,生态系统如何用其他NameNode替换和恢复它
发布于 2013-06-30 14:01:52
这里有两件事需要考虑,
1- Recovery through SecondaryNameNode
2- Recovery through redundant NameNode在hadoop-1.x中,我们有关于SecondaryNameNode的概念,它包含NameNode元数据的副本。如果您的NameNode宕机,您可以获取与SecondaryNameNode存储的元数据副本,并使用它来恢复您的工作,一旦您的NameNode重新启动。
使用hadoop-2.x(HA),您可以拥有多个NameNode。在主NameNode宕机的情况下,冗余NameNode可以接管,这样集群就不会停止工作(手动或自动)。在此实现中,在活动/备用配置中有一对NameNodes。在活动namenode发生故障的情况下,备用namenode接管其职责,继续为客户端请求提供服务。
为了利用HA特性,您应该在HA模式下使用一定数量的日志记录节点运行NameNodes,或者为编辑日志事务文件提供一个共享的HA-NFS存储。我建议你仔细阅读这些文章,它们很好地解释了恢复机制:
1- http://blog.cloudera.com/blog/2012/05/namenode-recovery-tools-for-the-hadoop-distributed-file-system/
2- http://blog.cloudera.com/blog/2012/10/quorum-based-journaling-in-cdh4-1/
3- http://blog.cloudera.com/blog/2012/03/high-availability-for-the-hadoop-distributed-file-system-hdfs/
但是如果您使用的是hadoop-1.x,那么最好有两个单独的位置来存储NAS元数据( itself+1 NameNode机器上的一个驱动器)。
HTH
https://stackoverflow.com/questions/17387477
复制相似问题