hadoop-streaming 配置之---参数分割
map:
-D stream.map.output.field.separator=. 定义mapoutput字段的分隔符为. 用户可以自定义分隔符(除了默认的tab)
-D stream.num.map.output.key.fields=4 第四个.前面的是key,后面的是value。如果该行.的个数少于四个,则整行数据就是key,value是空。
总结:就是划分map输出的key与value的。因为输出的都是文本行。都有个划分标志。
对应context.write(key, value) reduce:(同上)
-D stream.reduce.output.field.separator=SEP
-D stream.num.reduce.output.fields=NUM partitioner
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner
-D stream.map.output.field.separator=.
-D stream.num.map.output.key.fields=4
-D map.output.key.field.separator=. 字面的解释:map的输出key的field的separator=. (对key再进行切分==二面)
#-D num.key.fields.for.partition=2 指定将key分割后的前两部分用做partition
-D mapred.text.key.partitioner.options=-k1,2 附注:-k1,2 指定对key进行划分后第1 2个域进行划分(上述解释没有找到相关文档,也不属于原文) example1
Output输出(keys) 因为 -D stream.num.map.output.key.fields=4 指定map的输出行前4个作为key,后面为value
11.12.1.2
11.14.2.3
11.11.4.1
11.12.1.1
11.14.2.2
划分到3个reducer(前面2个字段作为partition的keys)
11.11.4.1
-----------
11.12.1.2
11.12.1.1
-----------
11.14.2.3
11.14.2.2 Reducer的每个划分内排序(4个字段同时用于排序) 实现了partitioner不是用map的输出key做partition而是用key的某一部分,对应了java中的自定义partitioner
11.11.4.1
-----------
11.12.1.1
11.12.1.2
-----------
11.14.2.2
11.14.2.3 example2
-D mapred.output.key.comparator.class=org.apache.hadoop.mapred.lib.KeyFieldBasedComparator
-D stream.map.output.field.separator=.
-D stream.num.map.output.key.fields=4
-D map.output.key.field.separator=.
-D mapred.text.key.comparator.options=-k2,2nr
-k2,2nr 中-k2,2指定key分割后的第2个域进行排序,n 指定使用数字排序,r指定排序结果最后要进行反转
Map输出(keys)
11.12.1.2
11.14.2.3
11.11.4.1
11.12.1.1
11.14.2.2
Reducer的输出(使用第二个字段进行排序)
11.14.2.3
11.14.2.2
11.12.1.2
11.12.1.1
11.11.4.1
hadoop-streaming 配置之---参数分割的更多相关文章
- Hadoop Streaming 使用及参数设置
http://www.cnblogs.com/hopelee/p/7476145.html https://blog.csdn.net/djy37010/article/details/5505103 ...
- Hadoop YARN配置参数剖析—RM与NM相关参数
注意,配置这些参数前,应充分理解这几个参数的含义,以防止误配给集群带来的隐患.另外,这些参数均需要在yarn-site.xml中配置. 1. ResourceManager相关配置参数 (1) ...
- Ubuntu15.10下Hadoop2.6.0伪分布式环境安装配置及Hadoop Streaming的体验
Ubuntu用的是Ubuntu15.10Beta2版本,正式的版本好像要到这个月的22号才发布.参考的资料主要是http://www.powerxing.com/install-hadoop-clus ...
- Hadoop Streaming详解
一: Hadoop Streaming详解 1.Streaming的作用 Hadoop Streaming框架,最大的好处是,让任何语言编写的map, reduce程序能够在hadoop集群上运行:m ...
- hadoop streaming怎么设置key
充分利用hadoop的map输出自动排序功能,能够有效提高计算效率.Hadoop streaming框架默认情况下会以'/t’作为分隔符,将每行第一个'/t’之前的部分作为key,其余内容作为valu ...
- 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试
相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控 用python + hadoop streami ...
- 用python + hadoop streaming 编写分布式程序(三) -- 自定义功能
又是期末又是实训TA的事耽搁了好久……先把写好的放上博客吧 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍 ...
- Hadoop Streaming
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/streaming.html Hadoop Streaming Streaming工作原理 将文件打包到提交的 ...
- Hadoop Streaming框架使用(一)
Streaming简介 link:http://www.cnblogs.com/luchen927/archive/2012/01/16/2323448.html Streaming框架允许任何程 ...
随机推荐
- 基于JQuery实现相同内容合并单元格[转]
<script type="text/javascript"> jQuery.fn.rowspan = function(colIdx) { //封装的一个JQuery ...
- oracle的sid
SID是一个数据库的唯一标识符!是你在建立一个数据库时系统自动赋予的一个初始ID,虽说他和数据库名(DB_NAME)都是一个数据库的唯一标识符,但是在作用上就有不小区别.SID主要用于在一些DBA操作 ...
- Opencv——播放视频(带滚动条)
#include"highgui.h" #include"cv.h" ; CvCapture* g_capture = NULL; void onTrackba ...
- C语言对文件的相关命令
fopen(文件名,使用文件的方式):打开数据文件 fclose(FILE *fp):关闭数据文件 feof(FILE *fp):是判断是否到fp的结尾 fputc(char ch,FILE *fp) ...
- SQL Server调优系列进阶篇 - 如何维护数据库索引
前言 上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看. 本篇延续上一篇的内容,继续分析索引这块,侧重索引项的日常 ...
- 学习笔记4_ServletContext(重要整个Web应用的动态资源之间共享数据)
ServletContext(重要) 一个项目只有一个ServletContext对象! 我们可以在N多个Servlet中来获取这个唯一的对象,使用它可以给多个Servlet传递数据! 与天地同寿!! ...
- article元素设计网络新闻展示
article元素用来表示文档.页面中独立的.完整的.可以独自被外部引用的内容.它可以是一篇文章博客或者报刊中的文章.一篇论坛帖子.一段用户评论或独立的插件等.除了内容部分,一个article元素通常 ...
- 12天学好C语言——记录我的C语言学习之路(Day 6)
12天学好C语言--记录我的C语言学习之路 Day 6: 今天,我们要开始学习数组了. //①数组部分,数组的大小不能够动态定义.如下: //int n; scanf("%d,& ...
- html-----017
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 某deed笔试题
1. 删除ra,输入s,然后从前往后扫,遇到直接删除,O(n),算水题吧. 2. 矩阵乘法,看完题,感觉这么简单,估计有什么套路,仔细再读一遍,发现真是水题,50*50*50=125000,在2s时 ...