hadoop CustomWritables

标签 hadoop writable

我有更多关于我的用例的 CustomWritable 必要性的设计问题:

所以我有一个文档对,我将通过管道处理它并将中间数据和最终数据写入 HDFS。我的 key 类似于 ObjectId - DocId - Pair - Lang。我不明白为什么/如果我需要一个 CustomWritable 这个用例。我想如果我没有 key ,我需要一个 CustomWritable 吗?此外,当我在 Reducer 中将数据写入 HDFS 时,我使用了自定义分区程序。那么,这会消除我对自定义可写对象的需求吗?

我不确定我是否理解了需要自定义可写权限的概念。有人可以指出我正确的方向吗?

最佳答案

可写对象可用于反序列化对象。例如,日志条目可以包含时间戳、用户 IP 和浏览器代理。因此,您应该为标识此条目的键实现您自己的 WritableComparable,并且您应该实现一个值类,该值类实现了可读写的,可以在您的日志条目中读取和写入属性。
这些序列化只是将数据从二进制格式获取到对象的便捷方式。 HBase 等一些框架仍然需要字节数组来持久化数据。因此,您自己传输此文件会产生大量开销并弄乱您的代码。

关于hadoop CustomWritables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629132/

相关文章:

hadoop - 哪个条件函数在 HIVE 中性能有效?如果还是情况?

Hadoop - 如何从实现可写接口(interface)切换到使用 Avro 对象?

在运行时更改 C 函数内容

hadoop - Apache Apex CLI 命令中 Shutdown-app 和 kill-app 的区别

hadoop - 控制 Spark 集群中作业或任务的分布

java - 在自定义可写对象中定义集合

java - 具有 ArrayWritable 的 Hadoop MapReduce 链

java - 如何在 groovy 中编写可写接口(interface)代码

hadoop - 除了 hadoop 集群中设置的时间之外,如何为长时间运行的应用程序更新委托(delegate) token

powershell - HDInsight powershell 作业提交无法使用流式 C# 作业定义自定义 libjar