【问题标题】:How to configure an Amazon EMR streaming job to use EC2 spot instances (Ruby CLI)?如何配置 Amazon EMR 流作业以使用 EC2 现货实例 (Ruby CLI)?
【发布时间】:2012-04-05 19:18:34
【问题描述】:
当我使用 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
谢谢
【问题讨论】:
标签:
amazon-ec2
amazon-web-services
elastic-map-reduce
amazon-emr
【解决方案1】:
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
附言您也可以运行一个 CORE 和许多 TASK 节点,但是,根据您正在执行的读/写量,您会感到痛苦,因为 18 个节点将读/写到 1 个节点。 p>
# 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