4

当我使用 Ruby 命令行界面使用 Amazon Elastic MapReduce (Amazon EMR) 创建流式作业时,如何指定使用EC2 现货实例(主实例除外)?下面的命令正在运行,但它“强制”我使用至少 1 个核心实例......

./elastic-mapreduce --create --stream          \
--name    n2_3                             \
--input   s3://mr/neuron/2              \
--output  s3://mr-out/neuron/2          \
--mapper  s3://mr/map.rb         \
--reducer s3://mr/noop_reduce.rb \
--instance-group master --instance-type m1.small --instance-count 1 \
--instance-group core   --instance-type m1.small --instance-count 1 \
--instance-group task   --instance-type m1.small --instance-count 18 --bid-price 0.028

谢谢

4

1 回答 1

7

CORE 和 TASKS 节点都运行 TaskTracker,但只有 CORE 节点运行 DataNode,所以,是的,您至少需要一个 CORE 节点。

所以你可以运行现货核心节点?

./elastic-mapreduce --create --stream \
...
--instance-group master --instance-type m1.small --instance-count 1 \
--instance-group core   --instance-type m1.small --instance-count 19 --bid-price 0.028

ps 你可以运行一个 CORE 和许多 TASK 节点,但是,取决于你正在做多少读/写,你会感到痛苦,因为 18 个节点将读/写到 1 个节点。

# expect problems....
./elastic-mapreduce --create --stream \
...
--instance-group master --instance-type m1.small --instance-count 1 \
--instance-group core   --instance-type m1.small --instance-count 1  --bid-price 0.028
--instance-group task   --instance-type m1.small --instance-count 18 --bid-price 0.028
于 2012-03-14T23:51:52.100 回答