2016-04-15 14 views
1

Ich versuche, Schwein auf tez auf Amazon emr 4.5.0 laufen. Die Konfiguration funktioniert ohne tez, ich versuche nur, es mit Tez zu arbeiten.Running Pig on Tez auf Amazon EMR-4

den Cluster erstellen (von der Kommandozeile), verwenden wir (TEZ_VERSION als 0.5.2 definiert ist):

--bootstrap-actions Path=s3://support.elasticmapreduce/tez/bigtop/install-tez.rb,Args=[-v,$TEZ_VERSION,--tez-site,tez.lib.uris=s3://support.elasticmapreduce/tez/$TEZ_VERSION/tez-$TEZ_VERSION-minimal.tar.gz] 

Zusätzlich ich das Überschreiben des PIG_CLASSPATH:

--configurations file://pig_tez_classification.json 

mit einem Gehalt:

[ 
    { 
    "Classification": "hadoop-env", 
    "Properties": { 

    }, 
    "Configurations": [ 
     { 
     "Classification": "export", 
     "Properties": { 
      "PIG_CLASSPATH": "/etc/tez/conf" 
     }, 
     "Configurations": [ 

     ] 
     } 
    ] 
    } 
] 

Der PIG_CLASSPATH diesen Fehler zu verhindern, ist erforderlich:

ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob - Cannot submit DAG 
org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration 

Die tez.lib.uris Überschreiben benötigt wird, um diesen Fehler zu vermeiden:

ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob (PigTezLauncher-0): Cannot submit DAG 
java.io.FileNotFoundException: File does not exist: hdfs://ip-172-31-3-207.eu-west-1.compute.internal:8020/apps/tez/0.5.2/tez-0.5.2-minimal.tar.gz 

Es ist das Skript die tar.gz-Datei an die richtige Stelle in den hdfs, aber wenn ich installieren erscheint schreibt Logge dich danach über ssh ein, die Datei ist nicht da. Ich denke, in EMR-4 werden die Bootstrap-Aktionen zu einem anderen Zeitpunkt ausgeführt, also bevor hdfs verfügbar sind?

Nach allem, was ich immer noch diese Fehlermeldung erhalten:

WARN org.apache.pig.backend.hadoop.executionengine.tez.TezJob - Exception while gathering stats 
java.lang.NullPointerException 
    at org.apache.pig.tools.pigstats.tez.TezDAGStats.accumulateStats(TezDAGStats.java:191) 
    at org.apache.pig.tools.pigstats.tez.TezPigScriptStats.accumulateStats(TezPigScriptStats.java:180) 
    at org.apache.pig.backend.hadoop.executionengine.tez.TezJob.run(TezJob.java:194) 
    at org.apache.pig.backend.hadoop.executionengine.tez.TezLauncher$1.run(TezLauncher.java:167) 

mit tez Version 0.8.2 Der Versuch liefert:

ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob - Cannot submit DAG 
org.apache.tez.dag.api.SessionNotRunning: TezSession has already shutdown 

die aufgrund einer Differenz in gebrauchten tez Version zu sein scheint, weil es noch druckt:

So weiß jemand, wie man Schwein auf tez auf Amazon emr (was auch immer Versionen) läuft?

Antwort

0

Ich führe es erfolgreich mit emr-4.4.0. Allerdings konnte ich mit dem auf HDFS hochgeladenen tar.gz nicht richtig arbeiten. Stattdessen musste ich den Tarball entpacken und alle einzelnen Dateien hochladen und dann tez.lib.uris auf hdfs: ///apps/tez-0.8.2,hdfs: ///apps/tez-0.8.2/lib setzen

+0

Es sieht so aus, als ob das von amazon (s3: //support.elasticmapreduce/tez/bigtop/install-tez.rb) bereitgestellte Skript install-tez.rb auch das Tarball entpackt, aber dann nur das tar.gz in hdfs hochlädt (Blick auf die Funktion install_tez). Ich werde deine Versionen ausprobieren und näher kommen. – Jan