hadoop streaming 的两种 key

参考:Hadoop Streaming 0.18 文档

第一种 key,用来做 reducer 里面的排序

 	-jobconf stream.map.output.field.separator=. \
    -jobconf stream.num.map.output.key.fields=4 \

第二种 key,用来将具有相同 key 的数据分配到同一个 reducer 里面

    -jobconf num.key.fields.for.partition=2 \
    -jobconf mapred.reduce.tasks=12

理解

如果只使用第一种 key ,那么,具有相同前两个 key 的数据可能会被分到不同的 reducer。
如果只使用第二种 key ,那么,在排序时就不能有效地对主键后面的部分进行排序。

这种高效的方法等价于指定前两块作为主键,后两块作为副键。 
主键用于切分块,主键和副键的组合用于排序。一个简单的示例如下:

Map的输出(key)

11.12.1.2
11.14.2.3
11.11.4.1
11.12.1.1
11.14.2.2

切分给3个reducer(前两块的值用于切分)

11.11.4.1
-----------
11.12.1.2
11.12.1.1
-----------
11.14.2.3
11.14.2.2
在每个切分后的组内排序(四个块的值都用于排序)

11.11.4.1
-----------
11.12.1.1
11.12.1.2
-----------
11.14.2.2
11.14.2.3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值