2017-04-18 3 views
0

Je suis connecté à une instance AWS EMR v5.4.0 via SSH et je souhaite appeler s3distcp. This link montre comment configurer une étape de RME pour appeler, mais quand je le lance je reçois l'erreur suivante:AWS EMR S3DistCp: Le service auxS: mapreduce_shuffle n'existe pas

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) 

J'ai suivi the instructions here mais il ne fonctionne toujours pas.

Répondre

0

Il se trouve que je devais restart the yarn nodemanager service après avoir configuré mapreduce_shuffle:

$ 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 

En outre, dans le cas où il aide le fichier yarn-site.xml était situé à: /etc/hadoop/conf/yarn-site.xml. Il avait déjà une entrée pour yarn.nodemanager.aux-services mais mapreduce_shuffle n'a pas été configuré:

<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> 

donc je l'ai ajouté comme ceci:

<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>