2017-04-18 5 views
0

Ich bin über SSH mit einer AWS EMR v5.4.0 Instanz verbunden und möchte s3distcp aufrufen. This link zeigt, wie ein emr Schritt zur Einrichtung zu nennen, aber wenn ich es laufen bekomme ich folgende Fehlermeldung:AWS EMR S3DistCp: Der auxService: mapreduce_shuffle existiert nicht

Container launch failed for container_1492469375740_0001_01_000002 : org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.instantiateException(SerializedExceptionPBImpl.java:168) 
    at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.deSerialize(SerializedExceptionPBImpl.java:106) 
    at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$Container.launch(ContainerLauncherImpl.java:155) 
    at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$EventProcessor.run(ContainerLauncherImpl.java:390) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Ich folgte the instructions here aber es immer noch nicht funktioniert.

Antwort

0

Es stellt sich heraus, dass ich zu restart the yarn nodemanager service benötigt nach mapreduce_shuffle Konfiguration:

$ initctl list | grep yarn 
hadoop-yarn-resourcemanager start/running, process 1256 
hadoop-yarn-proxyserver start/running, process 702 
hadoop-yarn-nodemanager start/running, process 896 
$ sudo stop hadoop-yarn-nodemanager 
$ sudo start hadoop-yarn-nodemanager 

Auch im Fall hilft es, die yarn-site.xml Datei an sich wurde: /etc/hadoop/conf/yarn-site.xml. Es hatte bereits einen Eintrag für yarn.nodemanager.aux-services aber mapreduce_shuffle wurde nicht konfiguriert:

<property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>spark_shuffle,</value> 
</property> 

<property> 
    <name>yarn.nodemanager.aux-services.spark_shuffle.class</name> 
    <value>org.apache.spark.network.yarn.YarnShuffleService</value> 
</property> 

Also habe ich es wie folgt hinzugefügt:

<property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>spark_shuffle,mapreduce_shuffle</value> 
</property> 

<property> 
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name> 
    <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
</property> 

<property> 
    <name>yarn.nodemanager.aux-services.spark_shuffle.class</name> 
    <value>org.apache.spark.network.yarn.YarnShuffleService</value> 
</property> 
Verwandte Themen