2014-12-24 2 views
0

Я установил hadoop 2.4.1 и hbase 0.98.8 на 2 машинах. Когда я запускаю работу HBase MapReduce я получаю ошибку ниже:hbase mapreduce file not found exception

Exception in thread "main" java.io.FileNotFoundException: File does not exist: hdfs://pc1/opt/hbase-0.98.8-hadoop2/lib/hbase-server-0.98.8-hadoop2.jar 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1128) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:288) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:224) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributedCacheManager.java:93) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestampsAndCacheVisibilities(ClientDistributedCacheManager.java:57) 
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:265) 
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:301) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:389) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303) 
    at thesis.test2.run(test2.java:93) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at thesis.test2.main(test2.java:107) 
    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) 

Я могу запустить работу Hadoop MapReduce и простые рабочие Hbase без каких-либо проблем. Код, который я пытаюсь запустить, является примером, который должен выполняться.

+0

Проверить это 1) http://stackoverflow.com/questions/27374810/my-cdh5-2-cluster-get-filenotfoundexception-when-running-hbase-mr-jobs/27501623#27501623 2) http://stackoverflow.com/questions/27111241/hive-with-hbase-query –

+0

уже видел их. не помогло. спасибо за предложение –

ответ

0

Просьба указать выход «jps». Потому что кажется, что ваш hbase не работает, надеюсь, проблема будет с zookeeper

+0

корень @ PC1: /opt/hadoop-2.4.1# JPS 3975 NameNode 6331 HQuorumPeer 4421 ResourceManager 4085 DataNode 4528 NodeManager 7186 Jps 6430 HMaster –

+0

я могу выполнять простые задания Hbase. Я могу создавать таблицы и помещать в них элементы –

+0

, можно ли создать таблицу и поместить элементы в hbase с помощью mapreduce или напрямую с помощью окна терминала hbase? – phoenix

0

Я столкнулся с точной проблемой. Вы должны добавить путь библиотеки hbase к файлу .bashrc. Добавьте папку lib в hbase в CLASSPATH. Также добавьте путь к классам hbase в HADOOP_CLASSPATH.

Ваш файл .bashrc должен содержать следующее:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:`${HBASE_HOME}/bin/hbase classpath` 
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:`${HBASE_HOME}/bin/hbase mapredcp` 

export CLASSPATH=${HBASE_HOME}/lib/* 

Примечание: CLASSPATH должен указывать на папку Lib папку установки HBase. Используйте следующую команду для компиляции и запуска кода Java.

javac Example.java 
java -classpath $CLASSPATH:. Example