我一直在用 CDH
以及 HDP
有一段时间(都是在伪分布式模式下)在虚拟机上,以及在ubuntu上本机安装。尽管我的问题可能与 Apache Hadoop Ecosystem
,让我在 Avro
.
找出不同包和包中的类的作用的最佳方法是什么。我通常在项目中引用javadoc( Avro
但是对于包和类的概述最终是非常不充分的。
例如,取两个avro软件包: org.apache.avro.specific
以及 org.apache.avro.generic
这些用于创建 Specific
以及
Generic Readers
以及 Writers
(分别)但我不是百分之百确定这些是干什么用的。我用过 Specific
当我使用 Avro
当我不想使用代码生成时,代码生成和泛型生成。然而,我不确定这是否是使用一个与另一个的唯一原因。
另一个例子是 Encoder\Decoder
类用于低级serde,即 DatumReader\DatumWrite
对于“中等级别”的serde,而大多数与avro的应用层交互可能会使用
Generic\Specific Readers\Writers
. 如果用户没有经历过使用这些类的痛苦,又怎么知道用什么来做什么呢?
有没有更好的方法来全面了解每个包(显然javadoc没有很好的文档)和包中的类?
附言:基本上我对其他所有问题都有类似的问题 Hadoop
项目( Hive
, HBASE
等等)-javadocs总体上似乎严重不足。我只是想知道其他开发人员最终会做些什么来解决这些问题。
任何输入都会很好。
1条答案
按热度按时间ep6jt1vc1#
我下载了源代码并浏览了一遍,以了解它的功能。如果有javadoc,我也读过。我倾向于把注意力集中在我需要的接口上,然后从那里开始,这样我就把所有的东西都放到上下文中,这样就更容易弄清楚它的用法。我经常使用call层次结构和type层次结构视图。
这些都是非常一般的指导方针,最终是你花在项目上的时间会让你理解它。
hadoop生态系统正在快速增长,每月都会有变化。这就是javadoc不太好的原因。另一个原因是hadoop软件倾向于基础设施而不是最终用户。开发工具的人会花时间学习API和内部构件,而其他人应该对所有这些都一无所知,而只是使用一些高级领域特定的语言来开发工具。