cdh5中的avrorecord类发生了什么?

wtlkbnrh  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(331)

我正在尝试使用cloudera文档中描述的pom.xml中的cdh5(clouderahadoop发行版)存储库。但是maven抱怨 AvroRecord 找不到。
以下是my pom.xml中的存储库设置:

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

下面是我如何在pom.xml中声明对hadoop的依赖关系(排除部分涉及到删除eror“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\u 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类?

c2e8gylq

c2e8gylq1#

我花了一分钟才弄明白。上游也“不存在”: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.avschttpshttp://github.com/cloudera/hadoop-common/blob/cdh5-2.5.0\u 5.2.1/hadoop-common-project/hadoop-common/src/test/avro/avrorecord.avsc
您找不到它大概是因为它也是一个测试类,没有包含在任何发行版中。我有点困惑的是它是如何进入主项目javadoc的。

相关问题