java - 如何在 Hadoop 流、typedbytes 和/或 rawbytes 中分隔键、值和记录

标签 java hadoop mapreduce hadoop-streaming hadoopy

我知道 Hadoop 流中的文本记录由换行符分隔,并且键和值之间有一个可配置的分隔符(默认为制表符)。

1) rawbytes 格式的结构表明不需要记录或键/值分隔符,但有人可以确认是这种情况吗?

2)在typedbytes格式中,key和value是如何定界的,records是如何定界的?

3) 此外,键如何以 typedbytes 和 rawbytes 格式排序?

最佳答案

  1. 正确
  2. header 中的长度信息使得分隔符成为不必要的,事实上它们在规范中没有使用,除了一个异常(exception),255 分隔列表,类型代码 9
  3. 未指定排序顺序。根据我的经验,mapreduce 中的默认比较器将它们排序为原始字节,每个字节按数字排序,数组按字典顺序排序。它是可插入的,因此您可以使用自己的 Java 类对其进行更改。

https://hadoop.apache.org/docs/current2/api/org/apache/hadoop/typedbytes/package-summary.html

安东尼奥

关于java - 如何在 Hadoop 流、typedbytes 和/或 rawbytes 中分隔键、值和记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031206/

相关文章:

java - 当java swing应用程序位于系统托盘中时,如何通过按键激活它

hadoop - nifi ConvertRecord JSON 到 CSV 只得到一条记录?

apache-spark - 有没有 hadoop map-reduce 比 apache spark 做得更好的用例?

hadoop - 如何以最少的停机时间/无停机时间将非HA HDFS群集重新配置为HA?

performance - Hadoop yarn 单节点性能调整

hadoop - 我们如何计算map函数在mapreduce程序中被调用的次数?

java stream - 字符串拆分两次后得到结果

Java 图形基础知识 : Creating Collison Area From Image

java - 客户端不从套接字读取数据?

hadoop - 工作驱动程序和第三方 jar