NFS 上的 Hadoop 集群
Posted
技术标签:
【中文标题】NFS 上的 Hadoop 集群【英文标题】:Hadoop cluster on NFS 【发布时间】:2011-07-30 00:12:54 【问题描述】:我正在尝试使用 NFS 在同一局域网上的 5 台机器上设置一个 hadoop 集群。我面临的问题是一台机器上的hadoop副本在所有机器上都复制了,所以我不能为每个从机提供专有属性。因此,我得到“无法创建锁”类型的错误。常见问题解答建议不应使用 NFS,但我别无选择。 有没有办法可以指定属性,例如,Master 应该从 location1 中选择它的 conf 文件,slave1 应该从 location2 中选择它的 conf 文件.....
【问题讨论】:
Hadoop 旨在运行每个节点都有自己的本地连接磁盘。任何具有共享 NFS 系统的大型 Map/Reduce 作业都可能执行得很差。即使在我们有 8 个本地驱动器的集群上,我们也可以获得 IO 等待(到目前为止,12 个主轴节点运行良好)。 我需要这个来测试我公司产品的一些功能。我不会将此设置用于任何 map/reduce 内容,这仅用于测试目的。 【参考方案1】:需要明确的是,计算节点和 HDFS 存储的配置之间存在差异。您的问题似乎只是配置的存储。这可以而且应该在本地完成,或者至少让每台机器根据一些本地识别的配置映射到一个符号链接(例如 Mach01 -> /etc/config/mach01,...)。
(修订版 1)关于下面关于符号链接的评论/问题:首先,我承认这不是我可以立即解决的问题。我看到了两种方法:
-
在机器上有一个脚本(例如在启动时或作为启动 Hadoop 的包装器)确定 NFS 目录结构中正确目录的主机名(例如
hostname -a') which then identifies a local symlink (e.g.
/usr/local/hadoopConfig')。
根据本地机器的主机名设置一个环境变量,比如HADOOP_HOME
,并让各种脚本使用它。
虽然 #1 应该可以工作,但它是一种转发给我的方法,而不是我设置的方法,如果主机名配置错误(这可能发生),我会有点担心符号链接。方法 #2 似乎更稳健。
【讨论】:
你能详细说明一下符号链接的事情吗?这是否意味着我可以在不同的机器上拥有相同的位置,成为其他位置的符号链接?例如,我可以在机器 1 和 2 上有一个符号链接 /home/temp 分别指向 /home/temp1 和 /home/temp2 吗?这将解决我的问题! 答案比评论更容易解决,所以我会修改答案。 我更倾向于使用#2以上是关于NFS 上的 Hadoop 集群的主要内容,如果未能解决你的问题,请参考以下文章