2015-10-23 1 views
4

Je tente d'exécuter spark-submit à l'aide du client boto3 pour EMR. Après l'exécution du code ci-dessous, l'étape EMR soumise et après quelques secondes a échoué. La ligne de commande réelle des journaux d'étapes fonctionne si elle est exécutée manuellement sur le maître EMR.spark-submit EMR Echec d'une étape lors de la soumission à l'aide du client boto3

Le journal du contrôleur affiche des données peu lisibles, ressemblant à plusieurs processus qui y sont écrits simultanément.

UPD: Essayé commande runner.jar et versions DME 4.0.0 et 4.1.0

Toute idée appréciée.

Le fragment de code:

class ProblemExample: 
    def run(self): 
     session = boto3.Session(profile_name='emr-profile') 
     client = session.client('emr') 
     response = client.add_job_flow_steps(
     JobFlowId=cluster_id, 
     Steps=[ 
      { 
       'Name': 'string', 
       'ActionOnFailure': 'CONTINUE', 
       'HadoopJarStep': { 
        'Jar': 's3n://elasticmapreduce/libs/script-runner/script-runner.jar', 
        'Args': [ 
         '/usr/bin/spark-submit', 
         '--verbose', 
         '--class', 
         'my.spark.job', 
         '--jars', '<dependencies>', 
         '<my spark job>.jar' 
        ] 
       } 
      }, 
     ] 
    ) 

Répondre

6

Enfin, le problème résolu en échappant --jars les valeurs correctement. Spark-submit échouait à ne pas trouver de classes, mais sur l'arrière-plan des journaux désordonnés, l'erreur n'était pas claire.

L'exemple est valable:

class Example: 
    def run(self): 
    session = boto3.Session(profile_name='emr-profile') 
    client = session.client('emr') 
    response = client.add_job_flow_steps(
    JobFlowId=cluster_id, 
    Steps=[ 
     { 
      'Name': 'string', 
      'ActionOnFailure': 'CONTINUE', 
      'HadoopJarStep': { 
       'Jar': 'command-runner.jar', 
       'Args': [ 
        '/usr/bin/spark-submit', 
        '--verbose', 
        '--class', 
        'my.spark.job', 
        '--jars', '\'<coma, separated, dependencies>\'', 
        '<my spark job>.jar' 
       ] 
      } 
     }, 
    ] 
)