hadoop - ImportTsv-HBASE 批量加载时出错

标签 hadoop hbase

我有 hbase 0.94.0。我尝试使用 importtsv 工具进行批量导入。 这是我给的命令

./hadoop jar /home/ericsson/Desktop/ProjectFiles/hbase-0.94.0/hbase-0.94.0.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,a,b,c,d,e,f,g '-Dimporttsv.separator=,' Test1 /home/ericsson/Desktop/ProjectFiles/inputFiles1/CharginUsage-m-00000

Test1-我的表已经存在于Hbase中。 /home/ericsson/Desktop/ProjectFiles/inputFiles1/CharginUsage-m-00000- 我有 CSV 文件的目录。

我收到以下错误:

    Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Multimap
    at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:43)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Multimap
    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 java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 6 more

最佳答案

importtsv 任务需要谷歌的 Guava 库才能运行。该库位于 $HBASE_HOME/lib/guava-.jar 下 这是告诉 hadoop 在执行期间获取这个 Guava jar 的问题。只需将 jar 从 hbase lib 复制到 hadoop lib。一个更合适的解决方案是将此 jar 路径添加到 hadoop 类路径或使用以下命令执行 hadoop 任务。

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/guava-<version>.jar

导出 HADOOP_CLASSPATH= `hbase classpath `/hadoop jar/home/ericsson/Desktop/ProjectFiles/hbase-0.94.0/hbase-0.94.0.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,a,b,c,d,e,f,g '-Dimporttsv .separator=,' Test1/home/ericsson/Desktop/ProjectFiles/inputFiles1/CharginUsage-m-00000*

关于hadoop - ImportTsv-HBASE 批量加载时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889776/

相关文章:

hadoop - 遍历 ArrayWritable - NoSuchMethodException

Hadoop MRUnit 抛出异常

java - 创建连接到 HBaseTestingUtility 的 HBaseAdmin

hadoop - HBase分布式模式

hadoop - 由于找不到方法错误,在 Hbase 中上传 HFiles 失败

hadoop - PIG 中是否有 HBaseStorage 的替代方案

apache-spark - Spark中转换的失败处理

hadoop - 为本地执行微调 PIG

java - 将数据输入转换为数据输入流?

HBase:在使用 Java API 创建表时指定 VERSIONS