Class 理解Hadoop包和类
我已经在虚拟机上使用了Class 理解Hadoop包和类,class,hadoop,packages,avro,Class,Hadoop,Packages,Avro,我已经在虚拟机上使用了CDH和HDP一段时间(都是在伪分布式模式下),也在Ubuntu上进行了本机安装。尽管我的问题可能与apachehadoop生态系统中的所有项目都相关,但让我在Avro的上下文中特别提出这个问题 找出不同包和包中的类的作用的最佳方法是什么。我通常会在项目中引用Javadoc(Avro),但是包和类的概述最终非常不充分 例如,以Avro软件包中的两个为例:org.apache.Avro.specific和org.apache.Avro.generic,它们分别用于创建spec
CDH
和HDP
一段时间(都是在伪分布式模式下),也在Ubuntu上进行了本机安装。尽管我的问题可能与apachehadoop生态系统中的所有项目都相关,但让我在Avro
的上下文中特别提出这个问题
找出不同包和包中的类的作用的最佳方法是什么。我通常会在项目中引用Javadoc(Avro
),但是包和类的概述最终非常不充分
例如,以Avro软件包中的两个为例:org.apache.Avro.specific
和org.apache.Avro.generic
,它们分别用于创建specific
和generic
阅读器和编剧
,但我不能100%确定它们的用途。当我使用了Avro
代码生成时,我使用了Specific
包,当我不想使用代码生成时,我使用了泛型包。然而,我不确定这是否是使用其中一个与另一个的唯一原因
另一个例子是:Encoder\Decoder
类用于低级SerDe,而DatumReader\DatumWrite
类用于“中级”SerDe,而与Avro的大多数应用层交互可能会使用通用\特定的读写器
。在没有经历过使用这些类的痛苦的情况下,用户如何知道使用什么呢
有没有更好的方法可以很好地了解每个包(显然javadoc没有很好的文档记录)和包中的类
PS:对于其他所有的Hadoop
项目(Hive
,HBASE
等等),我基本上都有类似的问题——Javadoc总体上似乎严重不足。我只是想知道其他开发人员最终会做些什么来解决这些问题
任何输入都很好。我下载了源代码并浏览了一遍,了解了它的功能。如果有javadoc,我也会读。我倾向于专注于我需要的接口,并从那里继续,这样我就可以将所有内容放到上下文中,从而更容易地了解用法。我经常使用调用层次结构和类型层次结构视图
这些是非常一般的指导方针,最终是你花在项目上的时间让你理解它
Hadoop生态系统正在快速增长,每月都会引入变化。这就是javadoc不那么好的原因。另一个原因是hadoop软件倾向于基础设施,而不是最终用户。开发工具的人会花时间学习API和内部构件,而其他人则被认为对所有这些都一无所知,只是使用一些高级领域特定语言来开发工具