0

我想使用 csv 文件在 hbase 中填充 mytable:Province。为此,我使用了以下命令:

bin/hbase org.apache.hadoop.hbase.mapreduce.importtsv -Dimport.columns=
HBASE_ROW_KEY,ProvinceINFO:ID, ProvinceINFO:Name Province /usr/data/province.csv

但它给了我这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase
/mapreduce
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.mapreduce
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.apache.hadoop.hbase.mapreduce. Program will exit.

所以,为了解决这个问题,我做了以下事情:

将 hbase.site.xml 复制到 hadoop/conf

将所有 hbase jar 文件和 zookeeper.jar 和 guava.jar 复制到 hadoop/lib

并设置HADOOP_CLASSPATHHBASE_pATH如下所示:

export HADOOP_CLASSPATH=/Desktop/hbase/lib/hbase-client-0.95.0-hadoop2.jar:/Desktop  
/hbase/lib/hbase-common-0.95.0-hadoop2.jar:/Desktop/hbase/lib/hbase-common-0.95.0-
hadoop2-tests.jar:/Desktop/hbase/lib/hbase-examples-0.95.0-hadoop2.jar:/Desktop/hbase
/lib/hbase-hadoop2-compat-0.95.0-hadoop2.jar:/Desktop/hbase/lib/hbase-hadoop-compat-
0.95.0-hadoop2.jar:/Desktop/hbase/lib/hbase-it-0.95.0-hadoop2.jar:/Desktop/hbase
/lib/hbase-it-0.95.0-hadoop2-tests.jar:/Desktop/hbase/lib/hbase-prefix-tree-0.95.0-
hadoop2.jar:/Desktop/hbase/lib/hbase-protocol-0.95.0-hadoop2.jar:$/Desktop/hbase
/lib/hbase-server-0.95.0-hadoop2.jar:$/Desktop/hbase/lib/hbase-server-0.95.0-hadoop2-
tests.jar:/Desktop/hbase/lib/guava-12.0.1.jar:/Desktop/hbase/conf:/Desktop/hbase
/lib/zookeeper-3.4.5.

但它没有改变。

请指导我

4

0 回答 0