【问题标题】:Reusing HDFS storage by several Hadoop installations多个 Hadoop 安装重用 HDFS 存储
【发布时间】:2014-04-14 12:56:38
【问题描述】:

是否可以为两个或多个 Hadoop 安装重用 HDFS 存储?或者换句话说,复制 NameNode 状态。

我想构建一个小型展示 Hadoop 集群(3-5 个节点),并且我希望能够使用多个 Hadoop 发行版(至少 Hortonworks 和 Cloudera)。我还没有决定,如何同时安装它们,这似乎也是一个挑战,但目前我想决定 - 是否可以为不同的集群重用存储在 HDFS 中的数据(物理上使用相同的硬盘)?

为简单起见,如果它适用于任何 Hadoop 发行版组合,我会很高兴,并且我随时准备丢失我的数据,因为这只是一个实验。

更新:我想一次只在一个选定的 Hadoop 安装中使用 HDFS。假设有一天我使用 Cloudera,其他 Hortonworks,但它们都在 HDFS 中使用相同的数据。

【问题讨论】:

  • 这听起来麻烦多于值得
  • 我同意,这就是我在 SO 上问它的原因。如果有合理的解决方案希望有人给我提示,否则它将一直没有答案。

标签: hadoop hdfs


【解决方案1】:

需要注意的是,您需要将它们放在不同的机器上,因为您无法将多个 NameNode 绑定到同一个端口 8020。

话虽如此,Cloudera 和 Horton Works 都使用相同的 Hadoop 二进制文件和相同的配置选项,就像您自己构建它们一样。不同之处在于他们的每个管理控制台都没有随基本开源 Hadoop 版本一起提供。我的建议是考虑配置一个 Hadoop 组和用户库,它们都可以访问相同的 HDFS NameNodes / DataNodes 和 Jobtrackers 等。然后您应该能够将所有 NameNodes 绑定到同一个 HDFS 文件系统。您还必须设置每个用户的 ssh 权限。

虽然有一些限制,例如 HDFS 仅支持独占写入。当第一个客户端联系名称节点以打开文件进行写入时,名称节点向客户端授予租约以创建该文件。当第二个客户端尝试打开同一个文件进行写入时,名称节点将看到该文件的租约已授予另一个客户端,并将拒绝第二个客户端的打开请求。

我还会相应地配置 HDFS 目录以保持一定程度的组织。

我在 VMWare / Ubuntu 中使用 Hadoop 0.23 和 2.2.0 做到了这一点。

最后看一下here 官方 Hadoop wiki 和常见问题解答。

祝你好运, 帕特

【讨论】:

  • 嗨帕特!感谢您的提示。从我的描述中不清楚,我不想同时访问 HDFS,我将专门通过一个 Hadoop 安装来使用它。假设有一天我使用 Cloudera,其他 Hortonworks,但他们使用来自 HDFS 的相同数据。我猜 NameNode 和独占写入在这种情况下不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2018-03-31
相关资源
最近更新 更多