在 hbase 1.0.1 上运行 mapreduce 的问题

Posted

技术标签:

【中文标题】在 hbase 1.0.1 上运行 mapreduce 的问题【英文标题】:Issues with running mapreduce on hbase 1.0.1 【发布时间】:2015-06-01 07:49:19 【问题描述】:

我在 Apache Hadoop 2.7 集群环境中独立运行 Hbase 1.0.1。 在 Hbase 上运行简单的 Map Reduce 作业时遇到以下问题。

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-client-2.5.1.jar:$HBASE_HOME/lib/hbase-common-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】:

已解决-如果有人遇到同样的问题,请发布。

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

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

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

【讨论】:

以上是关于在 hbase 1.0.1 上运行 mapreduce 的问题的主要内容,如果未能解决你的问题,请参考以下文章

HBase_在Linux上安装以及运用

Hive--简介

安装HBase后,HMaster进程无法在hadoop多节点集群上运行。

在远程集群上使用 Hbase 运行 Map Reduce

ubuntu 12.04上安装HBase并运行

HBase配置web界面