这是我第一次玩Hadoop集群,所以我对此非常陌生。
我在每台计算机上都有一个包含5个2 TB硬盘的3个节点的小型集群。所有都运行Ubuntu,具有相同的硬件规格,并使用Apache Hadoop 1.0.4。硬盘在每台计算机上安装为/ media / diskb,/ media / diskc,/ media / diskd等,并配置为JBOD。
所有3台计算机都用作数据节点和任务跟踪器,而其中一台是主名称节点和辅助名称节点,第二台是作业跟踪器,第三台是纯从属(DT / TT)节点。
在每台计算机的 hdfs-site.xml 文件中,我列出了挂载点,以逗号分隔,没有空格作为值。
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dfs/data,/media/diskb/data/dfs/data,/media/diskc/data/dfs/data,..</value>
</property>
对于名称节点:
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/dfs/name,/media/diskb/data/dfs/name,/media/diskc/data/dfs/name,..</value>
</property>
在mapred-site.xml中:
<property>
<name>mapred.local.dir</name>
<value>/data/mapred/local,/media/diskb/data/mapred/local,/media/diskc/data/mapred/local,...</value>
</property>
此外,在 core-site.xml
中<property>
<name>hadoop.tmp.dir</name>
<value>/media/diskb/data</value>
</property>
(我已经玩过将temp目录更改为一次分配给磁盘以检查权限等,Hadoop工作正常)
Hadoop用户帐户的安装权限和目录所有权已满。当我运行map / reduce程序时,我可以看到Hadoop在其 mapred / local 目录下的每个节点上的额外磁盘内创建资源文件夹,但我看不到数据节点发生同样的情况管理页面上报告的目录和配置的容量(namenode:50070)位于:5.36 TB(每个节点1.78 TB)。
为什么Hadoop不使用每块硬盘应该是26.7 TB的总容量?
此外,我认为使用所有磁盘运行Map / Reduce作业与仅在每个节点上使用1个磁盘时性能都有所提高。我应该期待什么?
谢谢!
答案 0 :(得分:2)
好的,非常简单的答案: dfs.namenode.name.dir 应为 dfs.name.dir dfs.datanode.data.dir 应为 dfs.data.dir
我认为他们(dfs.name.dir,dfs.data.dir)已被弃用,但显然不是。所以Hadoop按照我在core-site.xml中设置的默认值进行操作,因此只使用了3个驱动器。