Hadoop mapreduce为流定义分隔符
我正在使用Hadoop 2.7.1 我真的很难理解在流式处理中应用排序的点,如何更改排序顺序和分隔符。由于某些配置变量似乎可以互换使用(中使用的c.f.Hadoop mapreduce为流定义分隔符,hadoop,mapreduce,hadoop-streaming,hadoop-partitioning,Hadoop,Mapreduce,Hadoop Streaming,Hadoop Partitioning,我正在使用Hadoop 2.7.1 我真的很难理解在流式处理中应用排序的点,如何更改排序顺序和分隔符。由于某些配置变量似乎可以互换使用(中使用的c.f.map.output.key.field.separator和中使用的mapreduce.map.output.key.field.separator),因此,阅读更让我困惑 我的问题 在这个过程中,每个配置变量在什么时候被使用,它们到底会影响什么(有没有办法通过查看它们来判断?) 此外,当它们一起使用时会发生什么?它们是否相互超越 mapre
map.output.key.field.separator
和中使用的mapreduce.map.output.key.field.separator
),因此,阅读更让我困惑
我的问题
mapreduce.map.output.key.field.separator
map.output.key.field.separator
stream.map.output.field.separator
stream.num.map.output.key.fields
mapreduce.partition.keypartitioner.options
mapred.text.key.partitioner.options
mapreduce.fieldsel.data.field.separator
mapreduce.fieldsel.map.output.key.value.fields.spec
mapreduce.fieldsel.reduce.output.key.value.fields.spec
stream.reduce.input.field.separator
stream.num.reduce.input.fields
stream.reduce.output.field.separator
stream.num.reduce.output.fields
映射器的输入数据拆分
映射器
输出被分成(键
,值
)对,并发送到分区器
Partitioner
根据键(以及键内的字段?)将映射器
输出发送到比较器
比较器
对每个分区进行排序,并将其发送到减速机
键内的字段是什么意思?有称为
…key.field.separator
和…output.field.separator
的变量。我假设映射器有如下输出:11.12.1.2
-->{[11
,12
,1
,2
],non/code>}即,具有4个字段且没有值的键。