【问题标题】:Does value type in hadoop type has to implement writable interface?hadoop类型中的值类型是否必须实现可写接口?
【发布时间】:2015-07-15 21:25:15
【问题描述】:

我正在尝试了解如何为 mapreduce 框架实现自定义值类型。根据这篇文章(MapReduce - WritableComparables),在我看来值类型必须实现 Writable 接口。对吗?

我还关注 HBase 提供的各种工具(例如 Import、Export、CopyTable 等)的源代码。 Import 使用 Result 作为值类型。但是 Result 没有实现 Writable 接口。在这种情况下,序列化步骤如何工作?

【问题讨论】:

    标签: java hadoop hbase writable


    【解决方案1】:

    MapReduce 中有WritableWritableComparable

    • Writable 表示 MR 知道如何在必须通过线路发送对象时对其进行序列化。
    • WritableComparable 更进一步,意味着实现它的类的对象可以排序。

    在 MR 的实现中,键将在 shuffle 过程中进行比较和/或排序,这意味着它应该是WritableComparable。值只需要通过网络发送,所以Writable 就足够了。

    【讨论】:

    • 感谢您的回答。我不确定我是否同意您关于 HBase 不处理 MR 的观点。在 HBase 书(由 O'Reilly 出版)中,他们讨论了基于 MR 构建的各种 HBase 工具(例如 CopyTable、Import、Export)。它们都实现了 Tool 接口。
    • 我的意思是hbase的核心功能是按照Bigtable的设计自己构建的,即put、get、内部memstore等,这里没有引入MR作业。这些工具实际上是实用程序,可以基于 MR。
    • 好的。 HBase 提供的工具确实使用了 MR 框架。值类型通常为 Result。结果实现不实现可写接口。我想知道序列化步骤如何在这里工作。
    • 删除Hbase上的paragrph,后面会解释。
    • 我没有读过它的代码,但认为存在类似的序列化步骤。我想你可以看看 Result 实现,看看是否存在类似的功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2010-11-23
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多