【问题标题】:Understanding Hadoop Packages and Classes了解 Hadoop 包和类
【发布时间】:2014-11-24 20:30:30
【问题描述】:

我已经在 VM 上使用 CDHHDP 有一段时间了(都在伪分布式模式下)以及在 Ubuntu 上本地安装。虽然我的问题可能与Apache Hadoop Ecosystem 中的所有项目有关,但让我在Avro 的上下文中专门问这个问题。

了解不同包和包中的类的作用的最佳方法是什么。我通常最终会参考项目的 Javadoc(在这种情况下为Avro),但对包和类的概述最终非常不充分。

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

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

有没有更好的方法来很好地了解每个包(显然 javadoc 没有很好的文档记录)和包中的类?

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

任何输入都会很棒。

【问题讨论】:

    标签: class hadoop packages avro


    【解决方案1】:

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

    这些是非常一般的指导方针,最终是你花在项目上的时间会让你理解它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多