2015-06-30 2 views
1
классам

Я пытаюсь запустить код SampleUploader.java нашел hereHbase Map-Reduce функция выдает

Я использую 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; 

Aha! Я никогда не включал путь класса 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; 
         ^

Любое понимание того, как я могу решить эти проблемы?

EDIT // Я попытался запустить по-разному с инструкциями 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$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) 

ответ

0

недостающего classess является частью Hadoop-общей баночки. Пожалуйста, проверьте, есть ли он в указанном вами пути к классу

+0

Ага, который фиксировал связку. Я считаю, что путь 'hbase classpath' не включает в себя вещи hadoop ... У вас есть представление о том, что называется jar для Map-reduce? (Job, Mapper, FileInputFormat) –

+0

ну нет ничего похожего на jar для map-reduce. Их куча. Если вы используете maven, добавление этой зависимости поможет вам. Иными словами, вы должны сами собрать банки. ' \t \t \t org.apache.hadoop \t \t \t Hadoop-клиент \t \t \t $ {} hadoop.version \t \t \t при условии \t \t И пожалуйста, примите ответьте, если проблема решена – Ramzy

Смежные вопросы