Hadoop多节点(10x)群集

时间:2015-06-03 18:04:15

标签: java linux ubuntu hadoop distributed

我正在将Hadoop 1.0.3用于10台桌面集群系统,每个系统都有Ubuntu 12.04LTS 32位操作系统。 JDK为7 u 75.每台机器都有2 GB RAM,内核为2-duo处理器。

对于一个研究项目,我需要运行类似于"字数"的hadoop工作。我需要为大量数据集运行此操作,例如,大小至少为1 GB。

我正在尝试hadoop的示例jar hadoop-examples-1.0.3.jar用于计算输入数据集的单词。不幸的是,我无法运行任何超过5-6 MB输入数据的实验。

对于输入,我使用来自https://www.gutenberg.org的纯文本共振词库故事书。我还使用了https://www.ietf.org中的一些rfcs。所有输入都是.txt格式的英文写作。

我的系统可以为单个.txt文档提供正确的输出。但是,当它有超过1个.txt文件时,它开始连续发出错误:

INFO mapred.JobClient: Task Id :      attempt_XXXX, Status : FAILED
Too many fetch-failures

当我使用单个节点群集时,数据集也正常工作。我之前的stackoverflow帖子中提供了一些解决方案,例如this onethis one以及其他一些解决方案。但这些都不适合我的情况。根据他们的建议,我更新了我的/usr/local/hadoop/conf/mapred-site.xml文件,如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>master:54311</value>
  <description>The host and port that the MapReduce job tracker runs
  at.  If "local", then jobs are run in-process as a single map
  and reduce task.
  </description>
</property>
<property>
  <name>mapred.task.timeout</name>
  <value>1800000</value> 
</property>
<property>
  <name>mapred.reduce.slowstart.completed.maps</name>
  <value>0.9</value> 
</property>
<property>
  <name>tasktracker.http.threads</name>
  <value>90</value> 
</property>
<property>
  <name>mapred.reduce.parallel.copies</name>
  <value>10</value> 
</property>
<property>
  <name>mapred.map.tasks</name>
  <value>100</value> 
</property>
<property>
  <name>mapred.reduce.tasks</name>
  <value>7</value> 
</property>
<property>
  <name>mapred.local.dir</name>
  <value>/home/user/localdir</value> 
</property>

</configuration>

在这个文件中,我从michael-noll's blog收集了属性的值:“mapred.local.dir”,“mapred.map.tasks”,“mapred.reduce.tasks”。我也设定了,

export HADOOP_HEAPSIZE=4000

来自conf / hadoop-env.sh文件。

由于我已经使用hadoop-1.0.3设置了所有10台机器的环境,如果有人可以在不更改hadoop版本的情况下给我解决方案,对我来说会更有帮助。

另外我想提一下我是hadoop的新手。我找到了很多关于hadoop的文章,但我可以修改任何文章作为这个主题的标准。如果有人知道有关hadoop的任何信息和真实的文章随时与我分享。

提前感谢大家。

1 个答案:

答案 0 :(得分:0)

我的问题现在已经解决了。实际上问题出在我的网络设置中。不幸的是,由于我的网络设置错误,Hadoop系统无法在减少时找到合适的机器。

正确的网络设置应为:

在/ etc / hosts文件中,以下信息应包含:

localhost 127.0.0.1

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

master 192.168.x.x
slave1 192.168.x.y
....

在文件/ etc / hostname

我们应该只提一下在hosts文件中写的主机名。例如,在主机中我们应该只在主机名文件中写一个单词。它是:

master

对于机器slave1,文件应包含:

slave1