作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载

抽空用kettle配置了一个Mapreduce的Word count,发现还是很方便快捷的,废话不多说,进入正题.

一.创建Mapper转换

如下图,mapper读取hdfs输入,进行word的切分,输出每个word和整数常量值

1>MapReduce Input:Mapper输入,读取HDFS上的输入文件内容以键值对存储;

2>Spit filed to rows:读取value值以分隔符 "|"  进行切分(注意我这里hdfs文件中的word是以"|"隔开的)

3>Add constants:给每次出现的word追加一个常量字段mapValue,值为整数1.

4>MapReduce Output:Mapper输出,key为每个word,这里为mapKey,value为常量值mapValue.

二.创建Reducer转换

如下图,Reducer读取mapper的输出.按照每个key值进行分组,对相应的常量值字段进行聚合,这里是做sum,然后最终输出到hdfs文件中去.

1>MapReduce input:读取Mapper中的输出作为Reducer的输入

2>GroupByKey:按照key进行分组(这里key是每个word), 然后对value进行聚合sum,求出每个word出现的总次数;

3>MapReduce Output:最终的键值对,每行以<单词,总次数>来输出到hdfs上去.

三.创建MapReduce Job.

创建最终的MapReduce Job,配置相应参数,调用Mapper和Reducer,见下图

1>START:表示job的开始

2>SetMRVariables:组件是set variables,用于设置一些MapReduce执行所需要的参数的全局变量值,如hdfs input path等;

3>MapReduceWordCount:组件是Pentaho MapReduce组件,用来配置需要调用的Mapper和Reducer以及集群相关信息.

以上配置好以后执行MapReduce Job,会提交至Hadoop集群并运行成功,如上图,可以同时看到MapReduce的执行进度。

鉴于kettle能对字段做各种切分,组合以及正则等处理,还可以自定义java class,所以基本的MR程序都可以快速配置出来.

以上配置的Job下载链接:http://files.cnblogs.com/files/cssdongl/MRJobTest.7z

参考资料:http://wiki.pentaho.com/display/BAD/Understanding+How+Pentaho+works+with+Hadoop

Kettle实现MapReduce之WordCount的更多相关文章

  1. Java编程MapReduce实现WordCount

    Java编程MapReduce实现WordCount 1.编写Mapper package net.toocruel.yarn.mapreduce.wordcount; import org.apac ...

  2. eclipse运行mapreduce的wordcount

    1,eclipse安装hadoop插件 插件下载地址:链接: https://pan.baidu.com/s/1U4_6kLFNiKeLsGfO7ahXew 提取码: as9e 下载hadoop-ec ...

  3. MapReduce实现WordCount

    package algorithm; import java.io.IOException; import java.util.StringTokenizer; import org.apache.h ...

  4. Hadoop实战5:MapReduce编程-WordCount统计单词个数-eclipse-java-windows环境

    Hadoop研发在java环境的拓展 一 背景 由于一直使用hadoop streaming形式编写mapreduce程序,所以目前的hadoop程序局限于python语言.下面为了拓展java语言研 ...

  5. Hadoop实战3:MapReduce编程-WordCount统计单词个数-eclipse-java-ubuntu环境

    之前习惯用hadoop streaming环境编写python程序,下面总结编辑java的eclipse环境配置总结,及一个WordCount例子运行. 一 下载eclipse安装包及hadoop插件 ...

  6. Hadoop 6、第一个mapreduce程序 WordCount

    1.程序代码 Map: import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.h ...

  7. Hadoop Mapreduce中wordcount 过程解析

    将文件split 文件1:                                                                   分割结果: hello  world   ...

  8. 三.hadoop mapreduce之WordCount例子

    目录: 目录见文章1 这个案列完成对单词的计数,重写map,与reduce方法,完成对mapreduce的理解. Mapreduce初析 Mapreduce是一个计算框架,既然是做计算的框架,那么表现 ...

  9. 大数据技术 - 通俗理解MapReduce之WordCount(三)

    上一章我们编写了简单的 MapReduce 程序,掌握这些就能编写大多数数据处理的代码.但是 MapReduce 框架提供给用户的能力并不止如此,本章我们仍然以上一章 word count 为例,继续 ...

随机推荐

  1. zookeeper 的多线程和单线程库使用对比

    zookeeper提供了两个库,zookeeper_st和 zookeeper_mt. 前者是单线程库,仅仅提供了异步API和集成在应用程序实现循环中的回调函数,这个库是为了支持pthread库不支持 ...

  2. Bootstrap CDN推荐

    Bootstrap CDN推荐 本站实例采用的是百度的静态资源库(http://cdn.code.baidu.com/)上的Bootstrap资源. 百度的静态资源库的 CDN 服务,访问速度更快.加 ...

  3. winform 子报表数据源赋值

    this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource(&qu ...

  4. 【转】Eclipse打JAR包,插件FatJar安装与使用

    原文地址:http://blog.csdn.net/jikeyzhang/article/details/4731968 下载RUL: 下载fatJar插件,解压缩后是一个.../plugins/(n ...

  5. SQLSERVER中如何快速比较两张表的不一样

    SQLSERVER中如何快速比较两张表的不一样 不知不觉要写2014年的最后一篇博文了~ 一般来说,如何检测两张表的内容是否一致,体现在复制的时候发布端和订阅端的两端的数据上面 我这里罗列了一些如何从 ...

  6. javascript event兼容性随笔

    一.前言 function ConvertEvent(e, element) { var event = e || window.event; var resultEvent = { event: e ...

  7. Wix 安装部署教程(十三) -- 多语言安装包

    这几天摸索WIX的多语言安装包(这里是Wix的setup 工程,不是Bundle),终于走通了,感谢网友uni的指点.WIX的多语言安装包能够根据系统环境自动切换界面语言,你也可以通过命令指定语言.下 ...

  8. 谈谈.net模块依赖关系及程序结构

    技术为解决问题而生. 上面这个命题并非本文重点,我将来有空再谈这个.本文也并非什么了不起的技术创新,只是分享一下我对.net模块依赖关系及程序结构方面的一些看法.先看一个最最简单的hello worl ...

  9. python多线程网络编程

    背景 使用过flask框架后,我对request这个全局实例非常感兴趣.它在客户端发起请求后会保存着所有的客户端数据,例如用户上传的表单或者文件等.那么在很多客户端发起请求时,服务器是怎么去区分不同的 ...

  10. Atitit js中的依赖注入di ioc的实现

    Atitit js中的依赖注入di ioc的实现 全类名(FQCN)为标识符1 混合请求模式1 使用类内  builder  即可..2 Service locator method走ok拦2 Jav ...