Streaming支持多路输出(SuffixMultipleTextOutputFormat)

如下示例:

hadoop streaming \

-input /home/mr/data/test_tab/ \

-output /home/mr/output/tab_test/out19 \

-outputformatorg.apache.hadoop.mapred.lib.SuffixMultipleTextOutputFormat\   # 指定outputformat为org.apache.hadoop.mapred.lib.SuffixMultipleTextOutputFormat

-jobconf suffix.multiple.outputformat.filesuffix=a,c,f,abc,cde  \            # 指定输出文件名的前缀,所有需要输出的文件名必须通过该参数配置,否则job会失败

-jobconf suffix.multiple.outputformat.separator="#"\                        # 设置value与文件名的分割符,默认为“#”,如果value本身含有“#”,则可以通过该参数设置其他的分隔符

-mapper "cat" \

-reducer "sh reduce.sh" \

-file reduce.sh

注:标记为红色的参数必须设置,参数说明请见注释

Map或者reduce里需要在每个记录的reduce追加“#+文件名”

#!/bin/bash

while read line

do

key=$(echo $line | awk -F' ' '{print $1}')

value=$(echo $line | awk -F' ' '{print $2}')

if [ "$key" == "a" ]

then

echo"$key       $value#a"

fi

if [ "$key" == "c" ]

then

echo "$key    $value#c"

fi

if [ "$key" =="f" ]

then

echo "$key    $value#f"

fi

if [ "$key" =="abc" ]

then

echo "$key    $value#abc"

fi

if [ "$key" =="cde" ]

then

echo "$key    $value#cde"

fi

done

mapreduce 多路输出的更多相关文章

  1. hadoop streaming 多路输出 [转载]

    转载 http://www.cnblogs.com/shapherd/archive/2012/12/21/2827860.html hadoop 支持reduce多路输出的功能,一个reduce可以 ...

  2. MapReduce修改输出的文件名

    MapReduce默认输出的文件名称格式如下:part-r-00000 自定义名称,比如editName,则输出的文件名称为:editName-r-0000,此方法没有彻底修改整个文件名,只修改了一部 ...

  3. ffmpeg转码多路输出(二)

    ffmpeg转码多路输出(二)本程序支持一路输入多路输出,可根据map配置自行添加,第1路为纯拷贝,其他2路经过编解码,格式转换缩放和重采样,纯拷贝方面不同格式适应方面还没做全,以后补充.本程序适合多 ...

  4. 老版mapreduce跑streaming作业多路输出的方法

    1. 继承MultipleTextOutputFormat实现自己的输出类. 2. 重写generateFileNameForKeyValue方法,返回输出的名字,可通过"/"分割 ...

  5. MapReduce排序输出

    hadoop的map是具有输出自动排序功能的~继续学习~ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.c ...

  6. 9.2.1 hadoop mapreduce任务输出的默认排序

    任务的默认排序 MapTask和ReduceTask都会默认对数据按照key进行排序,不管逻辑上是否需要.默认是按照字典顺序排序,且实现该排序的方法是快速排序.但是map和reduce任务只能保证单个 ...

  7. MapReduce设置输出分隔符

    conf.set("mapred.textoutputformat.ignoreseparator","true"); conf.set("mapre ...

  8. MapReduce数据流-输出

  9. 如何去掉MapReduce输出的默认分隔符

    我们在用MapReduce做数据处理的时候,经常会遇到将只需要输出键或者值的情况,如context.write(new Text(record), new Text("")),这样 ...

随机推荐

  1. Oracle Goldengate工作原理

  2. Android 自学之基本界面组件(上)

    文本款(TextView)和编辑框(EditText)的功能和用法 TextView直接继承了View,他还是EditText.Button两个UI组件的父类,TextView的作用就是在界面上显示文 ...

  3. Elasticsearch template(待续...)

    动态模板 Dynamic templates allow you to define custom mappings that can be applied to dynamically added ...

  4. monkey与monkeyrunner的使用

    什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压 ...

  5. HTTP层 —— 中间件

    1.简介 HTTP 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则 ...

  6. Base64 编码

    Base64 字母表 Base64 编码将一个 8 位字节序列拆成 6 位的片段,并为每个 6 位的片段分配一个字符,这个字符是 Base64 字母表中的 64 个字符之一. Wert Zeichen ...

  7. 递归法绑定文件夹到导航树&在指定文件夹下新建文件夹

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString[&q ...

  8. JS 日期工具类-基于yDate

    源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...

  9. js实现图片滑动显示效果

    js实现图片滑动显示效果 今天用户提出一个需求,要实现一个滑动显示新闻列表的效果,具体就是图片新闻自动滑动显示,鼠标移上去就停止滑动,移开就继续滑动:效果如下: 第一:先用HTML和CSS实现显示,主 ...

  10. SpringMVC学习记录

    1E)Spring MVC框架 ①Jar包结构: docs+libs+schema. 版本区别:核心包,源码包. SpringMVC文档学习: 学习三步骤: 1)是什么? 开源框架 2)做什么? IO ...