hadoop - Hadoop 中的名称节点故障和恢复

标签 hadoop hdfs cloudera

Hadoop 如何确定 Namenode 发生故障或不工作?

我知道在 Hadoop 中,Namenode 是主要节点,它保留所有元数据,通过心跳识别数据节点的故障,并在数据节点发生故障时选择复制数据。

如果Namenode发生故障,哪个系统识别出故障,恢复过程是怎样的?

最佳答案

这取决于您所谈论的 Hadoop 版本。在 Hadoop 2 之前,Namenode 是一个单点故障,因此如果它发生故障,则意味着您的集群将无法使用。即使 SecondaryNameNode 在这种情况下也无济于事,因为它仅用于检查点,而不是作为 NameNode 的备份。当 NameNode 出现故障时,管理员之类的人必须手动重启 NameNode

但是从 Hadoop 2 开始,您有更好的方法来处理 NameNode 中的故障。您可以同时运行 2 个冗余 NameNode,这样如果其中一个 Namenode 发生故障,集群将快速故障转移到另一个 NameNode

它的工作方式非常透明,基本上 DataNodes 将向两个 NameNodes 发送报告,这样如果一个失败,另一个将准备好用于主动模式。对于客户端,它只需联系配置的每个 NameNode,直到找到事件节点。因此,如果它收到回复说要在别处尝试,或者如果 NameNode 没有回复,它就知道它需要使用不同的 NameNode

这是取自 the Cloudera blog 的模式这更详细地解释了这一点:

HANN

你也可以看看the HA article on the official documentation关于如何进行设置。

关于hadoop - Hadoop 中的名称节点故障和恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114123/

相关文章:

hadoop - hadoop-1.0.3 sequenceFile.Writer会覆盖而不是将图像附加到sequencefile中

amazon-web-services - 尝试从本地计算机访问 AWS 上的 HDFS 文件时出现错误

java - cloudera vm oozieWorkflow java.lang.ClassNotFoundException

hadoop - Hive 上的 Avro 动态模式更改

hadoop - 错误:org.apache.hadoop.hbase.PleaseHoldException:主正在初始化

hadoop - Nutch 1.x:如何使用s3a代替HDFS?

Java - com.cloudera.sqoop 与 org.apache.sqoop 哪个要从 sqoop jar 导入?

Hive 始终以本地模式运行映射作业

hadoop - 无法从 Java 程序连接到 HBase

hadoop - 如何配置 Hadoop 2.2 以适应这种情况?