【问题标题】:HDFS federationHDFS 联合
【发布时间】:2016-02-11 11:36:06
【问题描述】:

我有几个关于 HDFS 联盟 的基本问题。

是否可以从集群联合中的另一个名称节点读取在一个名称节点上创建的文件?

Hadoop 的当前版本是否支持此功能?

【问题讨论】:

  • 我有以下要求,您能否建议使用 Hadoop (HDFS) 是否可行以及如何使用。 1) 我们在两个不同的位置拥有两个名为 DCE 和 DCW 的数据中心。我们的要求是连接到数据中心之一的用户,无论是 DCE 还是 DCW,都应该能够访问他的数据,这些数据存在于其他一些相对的数据中心中。 2) 我们应该能够检索其中一个数据中心中存在的数据,以防该数据中心出现故障。我的基本要求是我们如何在两个数据中心复制 HDFS 数据

标签: hadoop hdfs hadoop2 federation


【解决方案1】:

让我解释一下名称节点联合如何按照Apache web site 工作

NameNode:

为了横向扩展名称服务,联邦使用多个独立的名称节点/名称空间。

Namenodes 是联合的; Namenodes是独立的,不需要相互协调。

Datanodes被所有Namenodes用作块的公共存储。每个 Datanode 都向集群中的所有 Namenode 注册。 Datanodes 定期发送心跳和块报告。它们还处理来自 Namenodes 的命令。

总之,

名称节点是互斥的,不需要它们之间的通信。数据节点可以在多个名称节点之间共享。

要回答您的问题,这是不可能的。如果数据写入一个名称节点,您必须联系该名称节点才能获取数据。你不能问其他名字节点。

关于您在数据复制方面更新的 cmets

当复制因子为 3 时,HDFS 的放置策略是将一个副本放在本地机架的一个节点上,另一个放在本地机架的不同节点上,最后一个在不同机架的不同节点上 - @987654324 @。

如果本地 RAC 出现故障,您可以使用此功能并从其他数据中心获取数据。但请注意,您是从一个联合名称节点读取数据,而不是从其他联合名称节点读取数据。

一个联合名称节点无法从其他联合名称节点读取数据。但是它们可以共享相同的Datanodes集进行读写操作。

编辑:

在每个联邦中,您可以对 Namenode 进行自动故障转移。如果 Active NameNode 在联合中失败,Stand-by Namenode 将接管 Active Namenode 的职责。

请参阅下面的 SE 帖子了解更多详情。

How does Hadoop Namenode failover process works?

【讨论】:

  • 关于“您不能询问其他名称节点。”如果名称节点出现故障会发生什么?我们是否无法访问某些文件?我们如何知道知道我正在查找的文件所在位置的名称节点?
  • 如果 Active Namenode 宕机,Stand-by 将变为 Active Namdenode。参考这个帖子:stackoverflow.com/questions/33311585/…
  • 好的,但是名称节点从哪里获取信息?在 hadoop-HA 上,辅助名称节点始终保持同步,在这种情况下,我们是否为每个联合名称节点都有一个备用节点?
  • 没错。您应该有备用名称节点。想象一下联邦是一组活跃的 NameNode/Stand-by NameNode 和多个 DataNode 集群。
  • Tom White 的 Hadoop The Definitive Guide 指出,块放置是第一个副本的本地机架和第二个和第三个副本的不同机架。文档告诉第一个和第二个在本地,第三个在不同的机架上。我在文档中没有意识到这一点。
【解决方案2】:

没有。这是不可能的。

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
  • 他问有没有可能。我说不是。请检查问题。 :)
  • 感谢 Jithin Shaji 感谢您的回复。我有以下要求,您能否建议使用 Hadoop(HDFS)是否可行以及如何使用。 1) 我们在两个不同的位置拥有两个名为 DCE 和 DCW 的数据中心。我们的要求是连接到数据中心之一的用户,无论是 DCE 还是 DCW,都应该能够访问他的数据,这些数据存在于其他一些相对的数据中心中。 2) 我们应该能够检索其中一个数据中心中存在的数据,以防该数据中心出现故障。我的基本要求是我们如何在两个数据中心复制 HDFS 数据。
【解决方案3】:

可以通过扩展BlockPlacementPolicy接口并将类指向dfs.block.replicator.classname属性来修改hadoop中块复制策略的默认行为Hadoop 配置文件。

请研究 BlockPlacementPolicy 以获得更好的图片。

您实际上可以修改可以将块放置在集群中的位置。

【讨论】:

  • 您不必为此使用 HDFS 联合。仅当名称节点数据太大而无法保存在单个名称节点上时,才使用 HDFS 联合。
  • 我有以下要求,您能否建议使用 Hadoop (HDFS) 是否可行以及如何使用。 1) 我们在两个不同的位置拥有两个名为 DCE 和 DCW 的数据中心。我们的要求是连接到数据中心之一的用户,无论是 DCE 还是 DCW,都应该能够访问他的数据,这些数据存在于其他一些相对的数据中心中。 2) 我们应该能够检索其中一个数据中心中存在的数据,以防该数据中心出现故障。我的基本要求是我们如何在两个数据中心复制 HDFS 数据
猜你喜欢
  • 2019-01-30
  • 2015-05-03
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
相关资源
最近更新 更多