在hbase 1.0.1上运行mapreduce的问题

时间:2015-06-01 07:49:20

标签: hadoop mapreduce hbase

我在Apache Hadoop 2.7集群环境中独立运行Hbase 1.0.1。 我在Hbase上运行一个简单的Map Reduce Job时遇到了问题。

Exception in thread "main" java.io.FileNotFoundException: File does not exist: hdfs://hdmaster:9000/usr/hadoop/share/hadoop/common/lib/zookeeper-3.4.6.jar
        at org.apache.hadoop.hdfs.DistributedFileSystem$22.doCall(DistributedFileSystem.java:1309)
        at org.apache.hadoop.hdfs.DistributedFileSystem$22.doCall(DistributedFileSystem.java:1301)
        at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
        at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1301)
        at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:288)
        at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:224)
..
..
..
..

我的Hadoop和Hbase设置似乎很好,因为我可以运行wordcount示例,也可以没有任何问题地放置/获取Hbase表。

似乎我没有想到在Hbase上运行Mapreduce的任何设置。我也尝试过:

  

出口   HADOOP_CLASSPATH =“$ HBASE_HOME / lib目录/ Hadoop的客户2.5.1.jar:$ HBASE_HOME / lib目录/ HBase的常见-1.0.1.jar:$ HBASE_HOME / lib中/的protobuf-java的2.5.0.jar:$ HBASE_HOME /lib/guava-12.0.1.jar:$HBASE_HOME/lib/zookeeper-3.4.6.jar:$HBASE_HOME/lib/hbase-protocol-1.0.1.jar“

1 个答案:

答案 0 :(得分:3)

解决了 - 如果有人遇到同样的问题,可以发帖。

$HBASE_HOME/lib中的Hadoop jar版本与hadoop安装jar不匹配。所以我用所需的版本替换它们。 重启HDFS,YARN和HBase。

使用以下命令执行MR作业:

$ HADOOP_CLASSPATH=$(hbase classpath) hadoop jar MyJob.jar MyJobMainClass