【问题标题】:Are Apache HBase and Cloudera HBase compatible?Apache HBase 和 Cloudera HBase 是否兼容?
【发布时间】:2012-08-07 19:48:40
【问题描述】:

在工作中,我们正在尝试做以下事情:

  • 通过 Amazon 运行 Elastic MapReduce 作业,这会将 Hadoop 冻结在 0.20.205 版本
  • 将输出写入运行在 EC2 上的 HBase,特别是来自 Cloudera 的 0.92.1-cdh4.0.1

到目前为止,我发现当我在 Hadoop 作业(通过 maven 打包)中使用 Apache HBase 0.92.1 时,我的 WordCount 测试似乎有效。我担心这是意外工作,并且随着我的使用成熟可能会爆炸。

但是,当我在我的 Hadoop 作业中打包 HBase 0.92.1-cdh4.0.1 时,我得到了一个 ClassNotFoundException

https://emr-qa.eventbrite.com.s3.amazonaws.com/logs/j-RWJ75VR11SLB/steps/1/stderr

  • Apache HBase jar 能否与 CDH Hbase 服务器很好地配合?
  • 像这样混合版本和包是不是很糟糕?

【问题讨论】:

  • 看起来答案是“否”...来自 HBase 提交者之一:bit.ly/PqwNqD

标签: hadoop hbase cloudera elastic-map-reduce


【解决方案1】:

我遇到了同样的问题,而且它们似乎不兼容(连接有问题)。解决方法是改变maven依赖使用cloudera的jars:

 <properties>
   <hbase.version>0.92.1-cdh4.0.1</hbase.version>
   <hadoop.version>2.0.0-cdh4.0.1</hadoop.version>
 </properties>

 <repositories>
   <repository>
       <id>cloudera</id>
       <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>
 </repositories>    

以及后来的依赖:

 <dependency>
 <groupId>org.apache.hbase</groupId>
      <artifactId>hbase</artifactId>
      <version>${hbase.version} </version>
      <exclusions>
          <exclusion>
              <artifactId>thrift</artifactId>
              <groupId>org.apache.thrift</groupId>
          </exclusion>
      </exclusions>
  </dependency>

当您想将代码与另一个发行版一起使用时,您可以更改属性并重新打包

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多