1

我启动了一个由两个节点组成的小型集群,并注意到主节点完全空闲,而从节点完成所有工作。我想知道让master运行一些任务的方法是什么。我知道对于具有专用主节点的大型集群可能是必要的,但在 2 节点集群上,这似乎是一种矫枉过正。

感谢您的任何提示,

瓦茨拉夫

更多细节:

这两个盒子各有 2 个 CPU。集群已在 Amazon Elastic MapReduce 上设置,但我正在从命令行运行 hadoop。

我刚刚尝试过的集群有:

Hadoop 0.18
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)


hadoop jar /home/hadoop/contrib/streaming/hadoop-0.18-streaming.jar  \
            -jobconf mapred.job.name=map_data \
            -file /path/map.pl                     \
            -mapper  "map.pl x aaa"                                     \
            -reducer NONE                                     \
            -input   /data/part-*                                         \
            -output  /data/temp/mapped-data                                    \
            -jobconf mapred.output.compress=true

其中输入由 18 个文件组成。

4

3 回答 3

0

hadoop-users 列表中的 Steve Loughran 建议在 master 上启动一个 tasktracker 就可以了。

$ bin/hadoop-daemon.sh 启动任务跟踪器

似乎工作。您可能需要调整此任务跟踪器的插槽数。

于 2010-09-14T14:27:54.403 回答
0

Hadoop 0.18 可能会有所不同,但您可以尝试将主服务器的 IP 地址添加到 conf/slaves 文件中 - 然后重新启动集群

于 2010-09-14T15:50:23.397 回答
0

Actually hadoop master is not the one doing work (tasks you run). You can start datanode and tasktracker on the same machine the master runs.

于 2010-09-14T12:07:53.290 回答