是否可以将HDFS存储重用于两个或更多Hadoop安装?或者说换句话说,复制NameNode状态。
我想构建一个小型展示Hadoop集群(3-5个节点),我希望能够使用几个Hadoop发行版(至少是Hortonworks和Cloudera)。我还没有决定,如何同时安装它们似乎也是一个挑战,但目前我还想决定 - 是否有可能将存储在HDFS中的数据重用于不同的集群(物理上使用相同的集群)硬盘)?
为简单起见,如果它适用于Hadoop发行版的任何组合,并且我准备在某些时候丢失我的数据,我会感到高兴,因为它只是一个实验。
更新:我想一次只使用一个选定的Hadoop安装HDFS。让我们说有一天我使用其他Hortonworks的Cloudera,但他们都在HDFS中使用相同的数据。
答案 0 :(得分:1)
一个警告是,您需要在不同的计算机上安装这些,因为您无法将多个NameNode绑定到同一个端口8020.
说过Cloudera和Horton Works都使用相同的Hadoop二进制文件和相同的配置选项,就像你自己构建它一样。不同之处在于它们的每个管理控制台都没有附带基础开源Hadoop版本。我的建议是研究配置单个Hadoop组和Userbase,它们都可以访问相同的HDFS NameNodes / DataNodes和Jobtrackers等。然后,您应该能够将所有NameNode绑定到同一个HDFS文件系统。您还必须设置每个用户的ssh权限。
但是有一些限制,例如HDFS仅支持独占写入。当第一个客户端联系name-node以打开要写入的文件时,name-node会向客户端授予租约以创建此文件。当第二个客户端尝试打开同一个文件进行写入时,name-node将看到该文件的租约已被授予另一个客户端,并将拒绝该第二个客户端的打开请求。
我还会相应地配置HDFS目录,以保持某种程度的组织。
我在VMWare / Ubuntu中使用Hadoop 0.23和2.2.0做了这个。
最后看看here官方Hadoop wiki和常见问题解答。
祝你好运, 专利