使用Java运行HBase ImportTsv

时间:2020-04-30 07:13:05

标签: java hbase

我遇到以下问题。 我有一个hbase表。现在,我想使用Java将TSV文件导入表中。我尝试了如下的ImportTsv:
ImportTsv.main(new String[]{"-Dimporttsv.separator=\",\"", "-Dimporttsv.columns=HBASE_ROW_KEY,cf:content,cf:rate", "hive_hbase_mapping_test", "hdfs://localhost:9000/test/wal-872248319686050639.log"}); 但这给了我这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/Base64
    at org.apache.hadoop.hbase.mapreduce.ImportTsv.createSubmittableJob(ImportTsv.java:462)
    at org.apache.hadoop.hbase.mapreduce.ImportTsv.run(ImportTsv.java:720)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at org.apache.hadoop.hbase.mapreduce.ImportTsv.main(ImportTsv.java:725)
    at Test.main(Test.java:14)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.util.Base64
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 6 more

我还尝试运行包含hbase命令的sh文件,如下所示:

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,cf:content,cf:rate $2 $1

但是似乎该命令被忽略了。然后我尝试在终端上执行命令,它运行正常。
是否有人给我提示或建议来解决此问题。非常感谢。

0 个答案:

没有答案