2014-11-24 38 views
0

我一直在虚拟机上使用CDHHDP一段时间(都是伪分布式模式),以及在Ubuntu上本地安装。虽然我的问题可能与Apache Hadoop Ecosystem中的所有项目有关,但我可以在Avro的范围内具体询问。了解Hadoop软件包和类

什么是最好的方法去弄清楚软件包中的不同的包和类是做什么的。我通常最终会提到该项目的Javadoc(在这种情况下为Avro),但是包和类的概览最终不能满足要求。

例如,采取两个Avro软件包:org.apache.avro.specificorg.apache.avro.generic这些用于创建SpecificGenericReadersWriters(分别),但我不是100%确定这些是什么。在我不想使用代码生成的情况下,我已经使用Specific程序包,用于我使用Avro代码生成和通用程序。但是,我不确定这是否是使用一个和另一个的唯一原因。

又如:Encoder\Decoder类用于低级别SERDE,所述DatumReader\DatumWrite为“中等等级” SERDE同时用阿夫罗大多数应用层的相互作用可能会使用Generic\SpecificReaders\Writers。没有经过使用这些类的痛苦挣扎,用户怎么知道什么用于什么?

有没有更好的方法来获得每个包的良好概述(显然javadoc没有很好的文档)和包中的类?我有类似的问题,基本上所有其他Hadoop项目(Hive,HBASE等) - Javadocs似乎是严重不足的整体。我只是想知道其他开发人员最终会如何解决这些问题。

任何投入都会很好。

+0

这可能有帮助 - http://javasearch.buggybread.com/home.php?keyword=%28avro%29 – 2016-02-18 17:41:26

回答

1

我下载了源代码并通过它浏览了解它的功能。如果有javadoc,我也读过。我倾向于专注于我需要的接口,并从那里继续前进,这样我就可以将所有内容放入上下文中,并且可以更轻松地找出使用情况。我使用调用层次结构和类型层次结构视图。

这些都是非常通用的指导方针,最终是您花费在项目上的时间,让您了解它。

Hadoop生态系统正在迅速发展,每月都会引入更改。这就是为什么javadoc不太好。另一个原因是hadoop软件往往倾向于基础设施而不是最终用户。开发工具的人们会花时间学习API和内部组件,而其他人都应该对所有这些都无知,并且只使用一些高级别的领域特定语言来使用该工具。