Hadoop Datanode,namenode,secondary-namenode,job-tracker和task-tracker

use*_*486 11 hadoop

我是hadoop的新手,所以我有些疑惑.如果主节点失败了hadoop集群发生了什么?我们可以没有任何损失地恢复该节点吗?是否可以保持辅助主节点在当前主节点发生故障时自动切换到主节点?

我们有namenode(辅助名称节点)的备份,因此我们可以在失败时从辅助名称节点恢复名称节点.像这样,当datanode失败时,我们如何恢复datanode中的数据呢?辅助名称节点是namenode的备份,但不是datenode,对吧?如果节点在作业完成之前失败,那么作业跟踪器中有作业挂起,该作业是否继续或从空闲节点中的第一个重新启动?

如果发生任何事情,我们如何恢复整个群集数据?

我的最后一个问题是,我们可以在Mapreduce中使用C程序(例如,mapreduce中的冒泡排序)吗?

提前致谢

man*_*ada 21

虽然,现在回答你的问题为时已晚,但只是它可以帮助别人.

首先让我用Secondary Name Node介绍你:

它包含名称空间图像,编辑日志文件的备份过去一小时(可配置).它的工作是合并最新的Name Node NameSpaceImage并编辑日志文件以上传回Name Node作为旧节点的替换.在集群中拥有辅助NN不是必需的.

现在提出你的担忧..

  • 如果主节点失败了hadoop集群发生了什么?

支持Frail的答案,是hadoop有单点故障,因此整个当前正在运行的任务(如Map-Reduce或其他使用故障主节点的任务)将停止.包括客户端在内的整个集群将停止工作.

  • 我们可以没有任何损失地恢复该节点吗?

这是假设的,没有丢失是最不可能的,因为所有数据(块报告)将丢失,在次要名称节点最后一次备份之后,数据节点将其发送到Name节点.为什么我提到的最少,因为如果名称节点在辅助名称节点成功备份​​运行后失败,则它处于安全状态.

  • 是否可以保持辅助主节点在当前主节点发生故障时自动切换到主节点?

管理员(用户)可以直接进行.要自动切换它,您必须从群集中编写本机代码,使用Code来监视将智能配置辅助名称节点的群集,并使用新名称节点地址重新启动群集.

  • 我们有namenode(辅助名称节点)的备份,因此我们可以在失败时从辅助名称节点恢复名称节点.像这样,当datanode失败时,我们如何恢复datanode中的数据呢?

它是关于复制因素,我们在不同的数据节点中有3个(默认为最佳实践,可配置)每个文件块的副本.因此,如果暂时失败,我们有2个备份数据节点.稍后的Name节点将再创建一个数据副本,该数据包含数据节点失败.

  • 辅助名称节点是namenode的备份,但不是datenode,对吧?

对.它只包含数据节点的所有元数据,如数据节点地址,属性包括每个数据节点的块报告.

  • 如果节点在作业完成之前失败,那么作业跟踪器中有作业挂起,该作业是否继续或从空闲节点中的第一个重新启动?

HDFS将继续努力继续这项工作.但同样取决于复制因素,机架感知和管理员的其他配置.但是,如果遵循Hadoop关于HDFS的最佳实践,那么它将不会失败.JobTracker将获得复制的节点地址以继续.

  • 如果发生任何事情,我们如何恢复整个群集数据?

通过重新启动它.

  • 我的最后一个问题是,我们可以在Mapreduce中使用C程序(例如,mapreduce中的冒泡排序)吗?

是的,您可以使用任何支持标准文件读写操作的编程语言.

我刚试了一下.希望它能帮助你和其他人.

*建议/改进是受欢迎的.*

  • 非常好的和清晰的解释.您似乎是一名Hadoop架构师,并且很长一段时间都在研究hadoop. (2认同)

fra*_*ail 14

目前hadoop集群有一个单点故障,即namenode.

关于辅助节点isssue(来自apache wiki):

术语"次要名称 - 节点"有点误导.在数据节点无法连接到辅助名称节点的意义上,它不是名称节点,并且在任何情况下它都可以在其失败的情况下替换主要名称节点.

辅助名称节点的唯一目的是执行定期检查点.辅助名称节点定期下载当前名称 - 节点映像并编辑日志文件,将它们连接到新映像并将新映像上载回(主要和唯一)名称节点.请参阅用户指南.

因此,如果名称节点失败并且您可以在同一物理节点上重新启动它,那么就不需要关闭数据节点,只需要重新启动名称节点.如果您不能再使用旧节点,则需要将最新图像复制到其他位置.如果可用,可以在故障之前的节点上找到最新的映像; 或在辅助名称节点上.后者将是没有后续编辑日志的最新检查点,也就是最近可能缺少的名称空间修改.在这种情况下,您还需要重新启动整个群集.

有一些棘手的方法可以克服这一单点故障.如果您正在使用cloudera发行版,这里解释的方法之一.Mapr分布有一种不同的方式来处理这个spof.

最后,您可以使用每种编程语言来编写映射reduce over hadoop streaming.

  • 很多人现在都将辅助名称节点称为"检查点节点",这是一件好事. (5认同)