我已经启动了一个由两个节点组成的小集群,并注意到主服务器完全空闲,而从服务器完成所有工作。我想知道让主人执行某些任务的方法是什么。我理解,对于具有专用主控的较大集群可能是必要的,但在双节点集群上,这似乎是一种过度杀伤。
感谢您的任何提示,
瓦茨拉夫
更多细节:
这两个盒子各有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个文件。
答案 0 :(得分:0)
实际上hadoop master不是那个正在做的人(你运行的任务)。 您可以在主服务器运行的同一台机器上启动datanode和tasktracker。
答案 1 :(得分:0)
史蒂夫·拉夫兰(Steve Loughran)在hadoop-users列表中建议在主人身上启动任务跟踪器就可以了。
$ bin / hadoop-daemon.sh启动tasktracker
似乎工作。您可能需要调整此任务跟踪器的插槽数。
答案 2 :(得分:0)
Hadoop 0.18可能有所不同,但您可以尝试将主服务器的IP地址添加到conf / slaves文件中 - 然后重新启动集群