2016-04-19 11 views
0

Ich habe einen Fehler, wenn ich versuche, meine Daten von Apache Pig in etwas anderes als CSV zu laden oder zu speichern. Hier ist mein Schwein Code:Apache Pig Fehler: java.lang.reflect.InvocationTargetException

REGISTER /usr/local/Cellar/pig/0.15.0/libexec/*.jar 
REGISTER /usr/local/Cellar/pig/0.15.0/libexec/lib/*.jar 
REGISTER /usr/local/Cellar/hbase/1.1.2/libexec/lib/*.jar 
REGISTER /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/*.jar 
REGISTER /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/lib/*.jar 
REGISTER /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/mapreduce/*.jar 
REGISTER /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/mapreduce/lib/*.jar 
REGISTER /usr/local/Cellar/pig/0.15.0/libexec/lib/piggybank.jar 

--generated_data = LOAD 'tableHive' USING org.apache.hive.hcatalog.pig.HCatLoader(',') AS (level:chararray, score:INT, attraction:chararray); 

generated_data = LOAD 'CSVResults/ireland.csv' USING PigStorage(',') AS (level:chararray, score:INT, attraction:chararray); 
DUMP generated_data; 
fiveRating = FILTER generated_data BY (float)score>4; 

level6 = FILTER fiveRating BY (float)level>5; 

groupedbylevel = group level6 by attraction; 

countAttractions = FOREACH groupedbylevel { 
    level6Attractions = CROSS level6.level; 
    generate group, COUNT(level6Attractions) AS listBylevel6; 
}; 

orderlist = ORDER countAttractions BY listBylevel6 DESC; 

limitorder = LIMIT orderlist 20; 

STORE limitorder into 'Level6AttractionsIreland-limited2' using PigStorage(','); 

STORE countAttractions into 'hbase://Level6AttractionsIreland' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('Ireland:level Ireland:score Ireland:attraction'); 
STORE countAttractions INTO 'Level6AttractionsIreland' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(','); 

und hier wird der Fehler aus dem Schwein Protokolldatei:

Pig Stack Trace 
--------------- 
ERROR 2999: Unexpected internal error. java.io.IOException: java.lang.reflect.InvocationTargetException 

java.lang.RuntimeException: java.io.IOException: java.lang.reflect.InvocationTargetException 
    at org.apache.hadoop.hbase.mapreduce.TableOutputFormat.setConf(TableOutputFormat.java:211) 
    at org.apache.pig.backend.hadoop.hbase.HBaseStorage.getOutputFormat(HBaseStorage.java:928) 
    at org.apache.pig.newplan.logical.visitor.InputOutputFileValidatorVisitor.visit(InputOutputFileValidatorVisitor.java:69) 
    at org.apache.pig.newplan.logical.relational.LOStore.accept(LOStore.java:66) 
    at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:64) 
    at org.apache.pig.newplan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:66) 
    at org.apache.pig.newplan.DepthFirstWalker.walk(DepthFirstWalker.java:53) 
    at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:52) 
    at org.apache.pig.newplan.logical.relational.LogicalPlan.validate(LogicalPlan.java:212) 
    at org.apache.pig.PigServer$Graph.compile(PigServer.java:1767) 
    at org.apache.pig.PigServer$Graph.access$300(PigServer.java:1443) 
    at org.apache.pig.PigServer.execute(PigServer.java:1356) 
    at org.apache.pig.PigServer.executeBatch(PigServer.java:415) 
    at org.apache.pig.PigServer.executeBatch(PigServer.java:398) 
    at org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:171) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:234) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:205) 
    at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81) 
    at org.apache.pig.Main.run(Main.java:631) 
    at org.apache.pig.Main.main(Main.java:177) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException 
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:459) 
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:436) 
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:317) 
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:198) 
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:160) 
    at org.apache.hadoop.hbase.mapreduce.TableOutputFormat.setConf(TableOutputFormat.java:206) 
    ... 25 more 
Caused by: java.lang.reflect.InvocationTargetException 
    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.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:457) 
    ... 30 more 
Caused by: java.lang.NoClassDefFoundError: org/cloudera/htrace/Trace 
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:218) 
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:481) 
    at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65) 
    at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:907) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:701) 
    ... 35 more 
Caused by: java.lang.ClassNotFoundException: org.cloudera.htrace.Trace 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 41 more 
================================================================================ 

Wie Sie sehen können habe ich versucht, jede JAR-Datei hinzufügen, die relevant sein können, und Ich habe auch alles außer den Lade- und Speicherbefehlen entfernt, um zu sehen, ob es der Code ist, der es verursacht, aber ich bekomme die gleichen Ergebnisse. Ich bin Pig sehr neu, also Entschuldigung, wenn das ein dummer Fehler ist, ich habe woanders nach Antworten gesucht, aber in diesem Stadium funktioniert nichts für mich. Auch ich bin auf einem Mac mit Hadoop, HBase und Hive lokal installiert und ich führe den Befehl 'Pig -x local test.pig' im Terminal. Jeder Rat wäre großartig, danke!

+0

'verursacht durch: java.lang.NoClassDefFoundError: org/cloudera/htrace/Trace' ... Bedeutet das etwas für dich? –

+0

Danke für Ihre Antwort, um ehrlich zu sein, nichts davon wirklich. Ich habe Clouderas VM zu einem Zeitpunkt installiert, den ich für ein College-Projekt verwenden würde, aber ich bin nervös, es zu deinstallieren, falls ich etwas kaputt mache. Glauben Sie, dass die VM ein Problem verursachen könnte? Ich habe diesen Fehler gesehen, aber ich dachte, dass es durch etwas näher an der Spitze der Fehler verursacht wurde, wenn Sie wissen, was ich meine. – user5502557

+0

Es ist eine VM, also kannst du nichts kaputt machen. Die Ursache eines Fehlers in einem Stacktrace ist unten. Deshalb wird es als "Stack" -Spur bezeichnet. Alles nach dem Fehler wird "oben" von den anderen hinzugefügt. –

Antwort

0

Ich bin mir nicht sicher, wo Sie Ihre Abhängigkeiten abgingen, aber Ihr Code sucht nach einem Cloudera-Paket, das nicht existiert, daher der Fehler.

Caused by: java.lang.ClassNotFoundException: org.cloudera.htrace.Trace 

Ich habe gerade heruntergeladen Hbase mit brew install hbase und die richtige Klassendatei org.apache.htrace.Trace in /usr/local/Cellar/hbase/.../htrace-core-*.jar

So befindet sich Ich würde empfehlen, die neueste Version der HBase Bibliotheken herunterzuladen.

+0

in Hbase zu speichern. Hallo, Danke für Ihre Vorschläge. Ich habe HBase installiert und diese JAR-Datei registriert. Ich habe HBase wie vorgeschlagen aktualisiert und die Gläser geändert, aber ich bekomme genau den gleichen Fehler. – user5502557

+0

Das gleiche wie in ihm ist immer noch auf der Suche nach einem Cloudera-Paket? Wenn das der Fall ist, könnte 'org.apache.pig.backend.hadoop.hbase.HBaseStorage' das Problem sein ... Könnten Sie versuchen, die Cloudera Quickstart-VM zu verwenden und zu sehen, was passiert? –

+0

Hallo, nein, ich habe mich entschieden, die Cloudera VM nicht zu verwenden, und ich bin in diesem Stadium ziemlich weit im Projekt. Vielen Dank für all Ihre Antworten, aber ich denke, ich muss weiterhin CSV-Dateien verwenden und die Datenbanken vergessen. Danke noch einmal. – user5502557

Verwandte Themen