1

職場では、次のことを試みています。

  • 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 サーバーとうまく連携しますか?
  • このようにバージョンとパッケージを混在させるのは恐ろしい考えですか?
4

1 に答える 1

1

私は同じ問題を抱えていましたが、互換性がないようです(接続に問題があります)。解決策は、maven の依存関係を変更して、cloudera の jar を使用することです。

 <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>

別のディストリビューションでコードを使用する場合は、プロパティを変更して再パッケージ化できます

于 2012-08-09T03:41:18.163 に答える