我试图理解如何实现mapreduce框架的自定义值类型。基于这篇文章(mapreduce-writablecomparables),在我看来,值类型必须实现可写接口。对吗?我还跟踪了hbase提供的各种工具(如导入、导出、copytable等)的源代码。导入使用结果作为值类型。但结果并没有实现可写接口。序列化步骤在这种情况下是如何工作的?
7kqas0il1#
有 Writable 以及 WritableComparable 在mapreduce中。 Writable 意味着当你的物体必须通过电线传送时,你知道如何对它进行串行化。 WritableComparable 更进一步,意味着实现它的类的对象可以被排序。在mr的实现中,密钥将在shuffle过程中进行比较和/或排序,这意味着应该 WritableComparable . 值只需要通过导线发送,所以 Writable 够了。
Writable
WritableComparable
1条答案
按热度按时间7kqas0il1#
有
Writable
以及WritableComparable
在mapreduce中。Writable
意味着当你的物体必须通过电线传送时,你知道如何对它进行串行化。WritableComparable
更进一步,意味着实现它的类的对象可以被排序。在mr的实现中,密钥将在shuffle过程中进行比较和/或排序,这意味着应该
WritableComparable
. 值只需要通过导线发送,所以Writable
够了。