对于我的用例,我有更多关于CustomWritable必要性的设计问题:
因此,我有一个文档对,将通过管道进行处理并将中间数据和最终数据写到HDFS。我的密钥将类似于ObjectId-DocId-Pair-Lang。我不知道为什么/如果需要此用例的CustomWritable。我想如果我没有 key ,我需要CustomWritable吗?另外,当我在Reducer中将数据写出到HDFS时,我使用了自定义分区程序。因此,这将消除我对“自定义可写”的需求吗?
我不确定是否需要“自定义可写”权限的概念。有人可以指出我正确的方向吗?
最佳答案
可写对象可用于反序列化对象。例如,日志条目可以包含时间戳,用户IP和浏览器代理。因此,您应该为标识该条目的键实现自己的WritableComparable,并且应实现一个值类,该值类实现可读写的日志条目中的属性的Writable。
这些序列化只是将数据从二进制格式获取到对象的一种便捷方法。诸如HBase之类的某些框架仍然需要字节数组来保留数据。因此,您自己转移此代码会产生很多开销,并弄乱了代码。
关于hadoop - hadoop CustomWritables,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5629132/