java - hadoop 类型中的值类型是否必须实现可写接口(interface)?

标签 java hadoop hbase writable

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

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

最佳答案

MapReduce中有WritableWritableComparable

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

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

关于java - hadoop 类型中的值类型是否必须实现可写接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064923/

相关文章:

hadoop - Hive 支持无符号数字数据类型

hadoop - BigTable 可以做OLAP 吗?

hadoop - 如何在 AWS EMR 上重启 yarn

java - bean 类的属性 'maximumActive' 无效

java - 为什么.class文件的常量池表中没有列出一维数组类型?

java - 优化 Java 代码

web-services - 如何使用 hbase 处理 Web 请求

java - LoadIncrementalHFiles有什么问题?

java - Google Cloud Bigtable 客户端连接池

Java Web Start 显示 "launched from downloaded JNLP file"