我将客户jar上传到S3,并希望在EMR中运行该作业。 所以在集群配置中,我选择了1个master和2个worker,指定了jar路径,输入路径和输出路径。一切都很好。
一旦它开始运行客户罐,我发现我无法查看工作任务,因为它告诉我"没有可用的任务",这很奇怪。完成工作后,我发现emr总共创建了306个任务,但是当我查看每个任务的syslog时,我发现它们都是按顺序执行的。例如,maptask260在19:40:35结束,maptask261从19:40:40开始,maptask262在261完成后开始。
据我所知,EMR根据作业大小创建了一堆任务,我认为所有任务都应该并行执行,这意味着,一旦作业开始运行,就应该创建,比如360任务,所有任务应该同时开始工作。
我不确定我的理解是错了还是错误配置了什么?
有人可以帮忙吗?
答案 0 :(得分:0)
任务应该在EMR中并行运行,但是您只启动了2个工作程序而您没有指定哪个实例类型。如果你有306个任务,并且你希望所有这些任务并行运行,那么你可能希望从2个以上开始。
例如,在EMR上使用Hadoop 1,您将在m1.xlarge实例上获得8个映射器插槽。要并行运行306个任务,您必须启动39台m1.xlarge机器。
我不确定这是否是您想要的,因为即使map-reduce作业执行了5分钟,您也会为每台机器支付一小时的费用。