Java Hbase映射减少函数类路径问题

Java Hbase映射减少函数类路径问题,java,hadoop,hbase,Java,Hadoop,Hbase,我正在尝试运行找到的SampleUploader.java代码 我使用的是HBase 0.98.6-cdh5.3.0和Hadoop 2.5.0-cdh5.3.0 要编译,我运行: hadoop com.sun.tools.javac.Main SampleUploader.java 但我会遇到很多错误,比如: SampleUploader.java:24: error: package org.apache.hadoop.hbase does not exist import org.apac

我正在尝试运行找到的SampleUploader.java代码

我使用的是HBase 0.98.6-cdh5.3.0和Hadoop 2.5.0-cdh5.3.0

要编译,我运行:

hadoop com.sun.tools.javac.Main SampleUploader.java
但我会遇到很多错误,比如:

SampleUploader.java:24: error: package org.apache.hadoop.hbase does not exist
import org.apache.hadoop.hbase.HBaseConfiguration;
SampleUploader.java:22: error: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;
                             ^
SampleUploader.java:23: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.Path;
                       ^ 
SampleUploader.java:29: error: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.LongWritable;
                           ^
啊哈!我从未包含hbase类路径

所以现在我试着:

hadoop com.sun.tools.javac.Main -cp `hbase classpath` SampleUploader.java
所有的hbase软件包现在都可以工作了,但我会遇到如下错误:

SampleUploader.java:24: error: package org.apache.hadoop.hbase does not exist
import org.apache.hadoop.hbase.HBaseConfiguration;
SampleUploader.java:22: error: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;
                             ^
SampleUploader.java:23: error: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.Path;
                       ^ 
SampleUploader.java:29: error: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.LongWritable;
                           ^
对如何解决这些问题有何见解

编辑// 我试着按照指示以不同的方式运行

遵循该方法后,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
    at org.apache.hadoop.hbase.mapreduce.SampleUploader.main(SampleUploader.java:137)
    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:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

缺少的类是hadoop公共jar的一部分。请验证它是否在您提到的类路径中

缺少的类是hadoop common jar的一部分。请验证您提到的类路径中是否存在修复了一堆问题的类路径。我相信
hbase类路径
不包括hadoop的东西。。。你知道MapReduce的jar叫什么吗?(Job、Mapper、FileInputFormat)对于map-reduce来说,没有什么比jar更好的了。有很多。如果您使用的是maven,添加此依赖项将对您有所帮助。另一方面,你必须自己收集罐子org.apache.hadoop hadoop客户端${hadoop.version}已提供”,如果您的问题是resolvedAha,请接受答案,这修复了一堆问题。我相信
hbase类路径
不包括hadoop的东西。。。你知道MapReduce的jar叫什么吗?(Job、Mapper、FileInputFormat)对于map-reduce来说,没有什么比jar更好的了。有很多。如果您使用的是maven,添加此依赖项将对您有所帮助。另一方面,你必须自己收集罐子org.apache.hadoop hadoop客户端${hadoop.version}已提供”,如果问题得到解决,请接受答案