2013-01-18 12 views
5

Używam CDH4 w trybie pseudo-rozproszonym i mam problemy z pracą z HBase i Pig razem (ale zarówno działa dobrze sam).CDH4 Hbase za pomocą Pig ERROR 2998 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/Filter

śledzę krok po kroku ten miły samouczek: http://blog.whitepages.com/2011/10/27/hbase-storage-and-pig/

Więc moja świnia-skrypt wygląda to

register /usr/lib/zookeeper/zookeeper-3.4.3-cdh4.1.2.jar 
register /usr/lib/hbase/hbase-0.92.1-cdh4.1.2-security.jar 
register /usr/lib/hbase/lib/guava-11.0.2.jar 

raw_data = LOAD 'input.csv' USING PigStorage(',') AS (
listing_id: chararray, 
fname: chararray, 
lname: chararray); 

STORE raw_data INTO 'hbase://sample_names' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage ('info:fname info:lname'); 

Ale po wejściu następujące polecenie

pig -x local hbase_sample.pig 

dostaję następujący komunikat o błędzie

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2998: Unhandled internal error. org/apache/hadoop/hbase/filter/Filter 

Głównym powodem znalazłem w Internecie byłyby ścieżek dla klas, więc oto lista bieżącej konfiguracji, może znaleźć jakiś nonsens w mojej konfiguracji:

export HADOOP_HOME=/usr/lib/hadoop 
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce 
export HADOOP_CONF_DIR=/etc/hadoop/conf 
export HBASE_HOME=/usr/lib/hbase 
export HBASE_CONF_DIR=/etc/hbase/conf 
export PIG_HOME=/usr/lib/pig 
export PIG_CONF_DIR=/etc/pig/conf 

export PATH="$HADOOP_HOME/bin:$HBASE_HOME/bin:$HADOOP_MAPRED_HOME/bin:$PIG_HOME/bin:$PATH" 
export HADOOP_CLASSPATH="$HBASE_HOME/bin" 
export PIG_CLASSPATH="$HBASE_HOME/bin:$PIG_HOME/bin" 

Jeśli potrzebujesz więcej szczegółów, oto kompletny stos świnia ślad:

Pig Stack Trace 
--------------- 
ERROR 2998: Unhandled internal error. org/apache/hadoop/hbase/filter/Filter 

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/Filter 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at org.apache.pig.impl.PigContext.resolveClassName(PigContext.java:478) 
    at org.apache.pig.impl.PigContext.instantiateFuncFromSpec(PigContext.java:508) 
    at org.apache.pig.parser.LogicalPlanBuilder.validateFuncSpec(LogicalPlanBuilder.java:791) 
    at org.apache.pig.parser.LogicalPlanBuilder.buildFuncSpec(LogicalPlanBuilder.java:780) 
    at org.apache.pig.parser.LogicalPlanGenerator.func_clause(LogicalPlanGenerator.java:4583) 
    at org.apache.pig.parser.LogicalPlanGenerator.store_clause(LogicalPlanGenerator.java:6225) 
    at org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1335) 
    at org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:789) 
    at org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:507) 
    at org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:382) 
    at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:175) 
    at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1594) 
    at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1545) 
    at org.apache.pig.PigServer.registerQuery(PigServer.java:545) 
    at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:970) 
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) 
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) 
    at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84) 
    at org.apache.pig.Main.run(Main.java:430) 
    at org.apache.pig.Main.main(Main.java:111) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:208) 
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.filter.Filter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 28 more 
================================================================================ 

Odpowiedz

6

Twój PIG_CLASSPATH jest źle, powinien on wyglądać następująco:

export PIG_CLASSPATH=”`hbase classpath`:$PIG_CLASSPATH” 

Spowoduje to dodanie brakujących hbase-słoików do ścieżki klas dla świni.

Powiązane problemy