hadoop 二次排序
来源:互联网 发布:苹果cms解析插件 编辑:程序博客网 时间:2024/05/06 14:49
KeyFieldBasedPartitioner是Hadoop库中的一个实用Partitioner,配置相应的参数就可以使用,通过KeyFieldBasedPartitioner可以方便地实现二次排序。
系统默认分隔符为\t,所以不需要重新定义,且shell不支持直接写\t,要用^I的形式,不然分隔符就真的是“\t”!!!
所以,如果\t分隔符不需要重新定义!!!!
$HADOOP_HOME/bin/hadoop streaming \
-D stream.map.output.field.separator=. \
-D stream.num.map.output.key.fields=4 \
-D map.output.key.field.separator=. \
-D num.key.fields.for.partition=2 \
-input /user/test/input -output /user/test/output \
-mapper “mymapper.sh” -reducer “ myreducer.sh” \
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner \
-file /home/work/mymapper.sh \
-file /home/work/myreducer.sh \
-jobconf mapred.job.name=”key-partition-demo”
其中-Dstream.map.output.field.separator=.和-D stream.num.map.output.key.fields=4与上面的定制输出数据分隔方式意义相同,指定map的输出行第4个英文句号”.”之前为key,后面为value。-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner指定使用KeyFieldBasedPartitioner,-D map.output.key.field.separator=.指定key的内部用英文句号”.”分隔,-D num.key.fields.for.partition=2指定将key分隔出来的前两个部分而不是整个key用于Partitioner做partition。
这里就是使用第一个+号来做key的分割,如果只有一个+符号就只能写1,有多个+才能用后面的来分割。不然就完全没用了!
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner \ -jobconf map.output.key.field.separator='+' \ -jobconf num.key.fields.for.partition=1 \
- hadoop 二次排序
- Hadoop二次排序
- Hadoop二次排序
- Hadoop二次排序
- hadoop二次排序
- hadoop之二次排序
- hadoop二次排序一
- hadoop二次排序二
- hadoop二次排序三
- Hadoop二次排序
- hadoop的二次排序
- Hadoop二次排序<转>
- Hadoop二次排序
- Hadoop二次排序
- hadoop二次排序
- hadoop 二次排序
- hadoop二次排序<转>
- Hadoop二次排序<转>
- 自定义控件时init编写报错(注意事项)
- 字符统计
- Opencv Mat的三种常用类型简介
- hdu5375 Gray code
- Android性能优化之布局优化
- hadoop 二次排序
- Dominant Color Problem Records
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:贪吃蛇(1)
- 数组中重复的数字
- maven import 工程 报错 pom plugin
- JS中!=与==与!==与===的用法和区别
- POJ 2485 Highways(最小生成树)
- Ubuntu安装Qt及QT Creator
- iOS 委托和协议