Hbase Map-Reduce 函数类路径问题
Hbase Map-Reduce function classpath issues
我正在尝试 运行 SampleUploader.java 找到的代码 here
我正在使用 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;
啊哈!我从未包含 hbase 类路径。
所以现在我尝试:
hadoop com.sun.tools.javac.Main -cp `hbase classpath` SampleUploader.java
所有的 hbase 包现在都可以工作,但我收到如下错误:
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;
^
对如何解决这些问题有任何见解吗?
编辑//
我尝试 运行 与说明 here
不同
按照该方法我得到:
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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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-common jar 的一部分。请验证它是否在您提到的类路径中
我正在尝试 运行 SampleUploader.java 找到的代码 here
我正在使用 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;
啊哈!我从未包含 hbase 类路径。
所以现在我尝试:
hadoop com.sun.tools.javac.Main -cp `hbase classpath` SampleUploader.java
所有的 hbase 包现在都可以工作,但我收到如下错误:
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;
^
对如何解决这些问题有任何见解吗?
编辑// 我尝试 运行 与说明 here
不同按照该方法我得到:
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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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-common jar 的一部分。请验证它是否在您提到的类路径中