【发布时间】:2014-11-24 20:30:30
【问题描述】:
我已经在 VM 上使用 CDH 和 HDP 有一段时间了(都在伪分布式模式下)以及在 Ubuntu 上本地安装。虽然我的问题可能与Apache Hadoop Ecosystem 中的所有项目有关,但让我在Avro 的上下文中专门问这个问题。
了解不同包和包中的类的作用的最佳方法是什么。我通常最终会参考项目的 Javadoc(在这种情况下为Avro),但对包和类的概述最终非常不充分。
例如拿两个 Avro 包:org.apache.avro.specific 和 org.apache.avro.generic 这些用于创建 Specific 和 Generic Readers 和 Writers(分别)但我不是 100% 确定这些是什么。当我使用 Avro 代码生成时,我使用了 Specific 包,而当我不想使用代码生成时,我使用了通用包。但是,我不确定这是否是使用一个与另一个的唯一原因。
另一个例子:Encoder\Decoder 类用于低级 SerDe,DatumReader\DatumWrite 用于“中级”Serde,而大多数应用程序层与 Avro 的交互可能会使用 Generic\Specific Readers\Writers。如果没有为使用这些类而苦苦挣扎,用户如何知道要使用什么?
有没有更好的方法来很好地了解每个包(显然 javadoc 没有很好的文档记录)和包中的类?
PS:我对基本上所有其他 Hadoop 项目(Hive、HBASE 等)都有类似的问题 - Javadocs 总体上似乎严重不足。我只是想知道其他开发人员最终会做什么来解决这些问题。
任何输入都会很棒。
【问题讨论】:
标签: class hadoop packages avro