了解Hadoop包和类

问题描述 投票:0回答:1

我一直在VM上使用CDHHDP(在伪分布式模式下)以及在Ubuntu上本地安装。虽然我的问题可能与Apache Hadoop Ecosystem内的所有项目有关,但让我在Avro的背景下特别提出这个问题。

了解包中的不同包和类的最佳方法是什么。我通常最终会引用该项目的Javadoc(在本例中为Avro),但是包和类的概述最终还是非常不合适。

对于例如取两个Avro软件包:org.apache.avro.specificorg.apache.avro.generic这些用于创建SpecificGeneric ReadersWriters(分别),但我不是100%确定它们的用途。我使用Specific包时,我使用Avro代码生成和通用的,当我不想使用代码生成。但是,我不确定这是否是使用一个与另一个的唯一原因。

另一个例子:Encoder\Decoder类用于低级SerDe,DatumReader\DatumWrite用于“中级”Serde,而大多数应用层与Avro的交互可能使用Generic\Specific Readers\Writers。如果没有通过使用这些类的痛苦,用户如何知道什么用于什么?

有没有更好的方法来获得每个包的良好概述(显然javadoc没有很好地记录)和包中的类?

PS:我对基本上所有其他Hadoop项目(HiveHBASE等)都有类似的问题 - Javadocs似乎总体上非常不足。我只是想知道其他开发人员最终会做些什么来解决这些问题。

任何输入都会很棒。

class hadoop packages avro
1个回答
1
投票

我下载源代码并浏览它以了解它的作用。如果有javadoc,我也会读到。我倾向于专注于我需要的接口并从那里继续前进,这样我将所有内容都放在上下文中,这样可以更容易地找出用法。我使用调用层次结构和类型层次结构视图很多。

这些是非常一般的指导方针,最终是您花在项目上的时间,这将使您了解它。

Hadoop生态系统正在快速增长,并且每月都会引入变化。这就是javadoc不太好的原因。另一个原因是hadoop软件倾向于倾向于基础设施,而不是倾向于最终用户。开发工具的人将花时间学习API和内部,而其他人有点无知所有这些,并且只是使用一些高级域特定语言的工具。

© www.soinside.com 2019 - 2024. All rights reserved.