如何配置Amazon EMR流作业以使用EC2 spot实例(Ruby CLI)?

Ren*_*aud 4 amazon-ec2 amazon-web-services amazon-emr elastic-map-reduce

当我使用Amazon Elastic MapReduce(Amazon EMR)创建流媒体作业时,使用Ruby命令行界面,如何指定使用EC2点实例(master除外)?下面的命令正在运行,但它"迫使"我使用至少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
Run Code Online (Sandbox Code Playgroud)

谢谢

mat*_*cey 7

CORE和TASKS节点都运行TaskTrackers,但只有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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)