【问题标题】:What happened to the AvroRecord class in CDH 5?CDH 5 中的 AvroRecord 类发生了什么?
【发布时间】:2015-02-08 17:48:08
【问题描述】:

我正在尝试在我的 pom.xml 中使用 CDH 5(Cloudera Hadoop Distribution)存储库,如Cloudera documentation 中所述。但是 Maven 抱怨 AvroRecord not found。

这是我的 pom.xml 中的存储库设置:

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

这是我在 pom.xml 中声明对 Hadoop 的依赖的方式(排除部分是关于摆脱错误“javax.servlet.FilterRegistration 的签名者信息与同一包中其他类的签名者信息不匹配"):

   <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>2.5.0-cdh5.2.1</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

当我查看 Hadoop 的文档时,AvroRecord 似乎存在:

http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop-common/api/org/apache/hadoop/io/serializer/avro/AvroRecord.html

但是当我查看 Cloudera 的分支 cdh5-2.5.0_5.2.1 的源代码时,它似乎不存在:

https://github.com/cloudera/hadoop-common/tree/cdh5-2.5.0_5.2.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/avro

换句话说,Cloudera 版本似乎存在以下问题,但在我使用 Hadoop 存储库时似乎可以正常工作:

import org.apache.hadoop.io.serializer.avro.AvroRecord;

使用 Cloudera Hadoop 时如何获取 AvroRecord 类?

【问题讨论】:

  • 它在 hadoop-common 中吗?我认为这个模块还有其他的源代码树。
  • @SeanOwen 另一个搜索返回了this,在2.0.0-cdh4.0.1 中显示hadoop-common 中的AvroRecord 类。我是否使用了错误的依赖项? Cloudera发行版中不是hadoop-common吗?

标签: hadoop cloudera avro


【解决方案1】:

我花了一分钟才弄清楚。它也在上游“不存在”: https://github.com/apache/hadoop/tree/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/avro

但这是因为它是一个生成的类。定义在这里: https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/test/avro/avroRecord.avsc https://github.com/cloudera/hadoop-common/blob/cdh5-2.5.0_5.2.1/hadoop-common-project/hadoop-common/src/test/avro/avroRecord.avsc

你没有找到它大概是因为它也是一个测试类,不包含在任何发行版中。我有点困惑的是它是如何进入主项目 javadoc 的。

【讨论】:

  • 感谢您的澄清,确实主要项目 javadoc 是增加我困惑的一个因素。
猜你喜欢
  • 2016-10-30
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2022-10-07
相关资源
最近更新 更多