1 -D mapred.output.key.comparator.class=org.apache.hadoop.mapred.lib.KeyFieldBasedComparator \

2 -D stream.map.output.field.separator=, / # 指定mapper每条输出key,value分隔符

3 -D stream.num.map.output.key.fields=4 / #指定前四列为key,之后为value(所以在partition过程中,以前4个字段为key)

4 -D mapred.text.key.comparator.options="-k1,1 -k4,4" \

5 -D map.output.key.field.separator=, \#设置map输出中,Key内部的分隔符,为接下来reduce的分桶做准备

6 -D num.key.fields.for.partition=2 / #这里是指定按照前二列进行分桶(

事实上KeyFieldBasePartitioner还有一个高级参数mapred.text.key.partitioner.options,这个参数可以认为是num.key.fields.for.partition的升级版,它可以指定不仅限于key中的前几个字段用做partition,而是可以单独指定key中某个字段或者某几个字段一起做partition。)

注意mapred.text.key.partitioner.optionsnum.key.fields.for.partition不需要一起使用,一起使用则以num.key.fields.for.partition为准。

7 -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner / #自己指定分桶规则时需要指定partitioner类

其中:

  • 1,2,3,4通常是一组,用来指定map输入时的key和按那几个key排序,个人理解,要按键排序时,必须要加上第一个参数,此外若要按key3排序,则fields至少等于3 ,此时若不指定分桶key,则以前三个fields为key进行分桶;    
  •  若要指定key的哪几个字段作为分桶的key,则再通过设置5,6,7是一组,用来指定map输出后用哪个key作为粪桶key(不好意思,是分桶!^_^)

(注意,这里有两个separator分隔符,第一个时map输出key_value的分隔符(map输出数据中的整体数据),第二个是map输出后指定的key内部的分隔符)

参考 https://blog.csdn.net/baidu_zhongce/article/details/49210787?utm_source=blogxgwz3

Hadoop streaming脚本中约束关系参数详解的更多相关文章

  1. gvoory脚本中关于HttpClient使用详解实例

    一.gvoory脚本中关于HttpClient使用详解实例 HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=n ...

  2. 【通信】JDK中的URLConnection参数详解

    JDK中的URLConnection参数详解 来自:http://www.blogjava.net/supercrsky/articles/247449.html 针对JDK中的URLConnecti ...

  3. Linux中mpstat命令参数详解

    Linux中mpstat命令参数详解 mpstat 是 Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在 /proc/stat ...

  4. JQuery中$.ajax()方法参数详解 及 async属性说明

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  5. Monkey中ADB命令参数详解

    Monkey命令行可用的全部选项: --help列出简单的用法.-v命令行的每一个-v将增加反馈信息的级别.Level 0(缺省值)除启动提示.测试完成和最终结果之外,提供较少信息.Level 1提供 ...

  6. ajax中error函数参数详解

    xhr.status和error函数中的status是不一样的,error函数中的status主要包括:"success"."notmodified".&quo ...

  7. Webpack中SplitChunksPlugin 配置参数详解

    代码分割本身和 webpack 没有什么关系,但是由于使用 webpack 可以非常轻松地实现代码分割,所以提到代码分割首先就会想到使用 webopack 实现. 在 webpack 中是使用 Spl ...

  8. ASP.NET 中 OutputCache 指令参数详解

    使用@ OutputCache指令使用@ OutputCache指令,能够实现对页面输出缓存的一般性需要.@ OutputCache指令在ASP.NET页或者页中包含的用户控件的头部声明.这种方式非常 ...

  9. JQuery中$.ajax()方法参数详解

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

随机推荐

  1. Django配置实现数据库读写分离

    django在进行数据库操作的时候,读取数据与写数据(增.删.改)可以分别从不同的数据库进行操作. 1. 在配置文件中增加slave数据库的配置 2. 创建数据库操作的路由分发类 在meiduo_ma ...

  2. Python 用科学的方法判断函数/方法

    from types import MethodType,FunctionType def check(arg): """ 检查arg是方法还是函数? :param ar ...

  3. 超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本

    超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本 前言 上一篇自动化测试,全面且详细的介绍了从零开始到发布版本的步骤,这是传统的方式,本次为大家带来的是如何在5分钟内使用上d ...

  4. pymssql的Connection相关特性浅析

    关于Python的pymssql模块,之前研究时总结了"pymssql默认关闭自动模式开启事务行为浅析"这篇博客,但是在测试过程中又发现了几个问题,下面对这些问题做一些浅析,如有不 ...

  5. MIT线性代数:22.对角化和A的幂

  6. 学习笔记66_DBSCAN聚类算法

  7. NOIP模拟 16

    嗯我已经是个不折不扣的大辣鸡了 上次的T3就弃了,这次又弃 颓废到天际 T1 巨贪贪心算法 我就是一个只会背板子的大辣鸡 全裸的贪心看不出来,只会打板子 打板子,加特判,然后一无进展,原题不会,这就是 ...

  8. 基于华为物联网IOT的应用开发 ---界面管理开发

    在前面随笔<基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装>介绍过IOT中应用侧SDK的封装,主要就是基于华为IOT的应用侧封装,以便在应用系统中进行调用.应用侧SDK ...

  9. Python 面向对象之一 类与属性

    Python 面向对象之 类与属性 今天接触了一下面向对象,发现面向对象和之前理解的简直就是天壤之别,在学Linux的时候,一切皆文件,现在学面向对象了,so,一切皆对象. 之前不是一直在学的用面向函 ...

  10. 阿里云开源 image-syncer 工具,容器镜像迁移同步的终极利器

    为什么要做这个工具? 由于阿里云上的容器服务 ACK 在使用成本.运维成本.方便性.长期稳定性上大大超过公司自建自维护 Kubernets 集群,有不少公司纷纷想把之前自己维护 Kubernetes ...