我试图在同一局域网的5台机器上设置一个hadoop集群。我面临的问题是,一台机器上的hadoop副本被复制到所有机器上,所以我不能为每个slave提供独占属性。由于这个,我得到"不能创建锁"的错误。FAQ建议不应该使用NFS,但我没有其他选择。有没有一种方法,我可以指定属性,如,主应该从location1中选择它的配置文件,slave1应该从location2中选择它的配置文件.....
需要说明的是,计算节点和HDFS存储的配置是不同的。您的问题似乎仅仅是配置的存储。这可以并且应该在本地完成,或者至少让每台机器映射到基于一些本地识别配置的符号链接(例如Mach01 ->/etc/config/mach01,…)。
(修订1)关于下面关于符号链接的评论/问题:首先,我要承认这不是我可以立即解决的问题。我看到有两种方法:
- 在机器上有一个脚本(例如在启动或作为启动Hadoop的包装器)确定主机名(例如
hostname -a') which then identifies a local symlink (e.g.
/usr/local/hadoopconfig ')到NFS目录结构上的正确目录。 - 根据本地机器的主机名设置一个环境变量,例如
HADOOP_HOME
,并让各种脚本使用它。
虽然#1应该工作,但它是传递给我的方法,而不是我设置的方法,并且如果主机名配置错误(这可能发生),我会有点担心符号链接。方法#2似乎更健壮。