hadoop2.2编程:用ruby跑hadoop的完整实例
 #!/usr/bin/ruby
 # Ruby code for map.rb
 ARGF.each do |line|
    # remove any newline
    line = line.chomp
    # do nothing will lines shorter than 2 characters
    next if ! line || line.length < 2
    # grab our key as the two-character prefix (lower-cased)
    key = line[0,2].downcase
    # value is a count of 1 occurence
    value = 1
    # output to STDOUT
    # <key><tab><value><newline>
    puts key + "\t" + value.to_s
 end
 #!/usr/bin/ruby
 # Ruby code for reduce.rb
 prev_key = nil
 key_total = 0 
 ARGF.each do |line|
    # remove any newline
    line = line.chomp
    # split key and value on tab character
    (key, value) = line.split(/\t/)
    # check for new key
    if prev_key && key != prev_key && key_total > 0 
       # output total for previous key
       # <key><tab><value><newline>
       puts prev_key + "\t" + key_total.to_s
       # reset key total for new key
       prev_key = key
       key_total = 0 
    elsif ! prev_key
       prev_key = key 
    end 
    # add to count for this current key
    key_total += value.to_i
 end
#!/bin/bash HADOOP_HOME=/home/grid/hadoop JAR=contrib/streaming/hadoop--streaming.jar HSTREAMING="$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/$JAR" $HSTREAMING \ -mapper 'map.rb' \ # or -mapper 'ruby map.rb' -reducer 'reduce.rb' \ # or -reducer 'reducer.rb' -file map.rb \ # file path does not need specify full path -file reduce.rb \ -input '/user/grid/input/*' \ -output '/user/grid/output'
cmd line: %bin/hadoop jar ~/hadoop/contrib/streaming/hadoop--streaming.jar -input NCDC/files -output output -mapper Map.rb -reducer Reduce.rb
hadoop2.2编程:用ruby跑hadoop的完整实例的更多相关文章
- 在Docker中跑Hadoop与镜像制作
		重复造轮子,这里使用重新打包生成一个基于Docker的Hadoop镜像: Hadoop集群依赖的软件分别为:jdk.ssh等,所以只要这两项还有Hadoop相关打包进镜像中去即可: 配置文件准 ... 
- 在eclipse上跑hadoop的helloworld
		关于hadoop的用处什么我就不说了,在这里记录下在eclipse上第一次跑hadoop遇到的问题吧~ hadoop的安装我就不说啦,网上教程一大堆~我直接用的公司的Linux上的hadoop. ec ... 
- [.net 面向对象编程基础] (9) 类和类的实例
		[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ... 
- 在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例
		在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例 ... 
- hadoop2.2编程:hadoop性能测试
		<hadoop the definitive way>(third version)中的Benchmarking a Hadoop Cluster Test Cases 的class在新的 ... 
- hadoop2.2编程:自定义hadoop map/reduce输入文件切割InputFormat
		hadoop会对原始输入文件进行文件切割,然后把每个split传入mapper程序中进行处理,FileInputFormat是所有以文件作为数据源的InputFormat实现的基类,FileInput ... 
- MapReduce编程模型及其在Hadoop上的实现
		转自:https://www.zybuluo.com/frank-shaw/note/206604 MapReduce基本过程 关于MapReduce中数据流的传输过程,下图是一个经典演示: 关于上 ... 
- hadoop2.2编程:使用MapReduce编程实例(转)
		原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 从网上搜到的一篇hadoop的编程实例,对于初学者真是帮助太大 ... 
- hadoop2.2编程:各种API
		hadoop2.2 API http://hadoop.apache.org/docs/r0.23.9/api/index.html junit API http://junit.org/javado ... 
随机推荐
- OI中神奇的神器fillchar
			传说,Pascal中有一个函数——fillchar.这是高手们装*用的利器,也是大家的神器(大家好才是真的好). 神器介绍: 百度百科说:“Fillchar是Turbo/Borland Pascal的 ... 
- C++ txt文档读取
			void readfile(string filepath){ ifstream myfile; if (!myfile) { cout << "打开文件出错!"; e ... 
- OpenJudge 2811 熄灯问题 / Poj 1222 EXTENDED LIGHTS OUT
			1.链接地址: http://bailian.openjudge.cn/practice/2811 http://poj.org/problem?id=1222 2.题目: 总时间限制: 1000ms ... 
- Linux作业控制
			在Linux中,利用Shell的作业控制是比较常用的操作,在这一节中我们将探究作业控制相关的操作.为了方便我们查看区分不同的进行,我们编写如下程序,其功能是每间隔2秒输出一次自己的编号. /* ** ... 
- Jquery Offset, Document, Window 都是什么
			From http://www.cnblogs.com/luhe/archive/2012/11/14/2769263.html JQuery Offset实验与应用 我们有时候需要实现这样一种功 ... 
- (转载)c++builder/delphi中透明panel及透明窗口的实现方法_delphi教程
			c++builder/delphi中透明panel及透明窗口的实现方法_delphi教程 可能大多数程序员会问:透明窗口,特别是透明Panel有什么应用价值呢?可别小看它们哦,下面我就来讲讲他们的巨大 ... 
- Jabber Software:Jabber-NET、agsXMPP与Wilefire[转]
			本篇介绍两个使用.NET技术,确切的说是使用C#写的Jabber Code Libraries – Jabber.NET.agsXMPP,以及一个Java写的跨平台Jabber Server – Wi ... 
- 【BZOJ】1088: [SCOI2005]扫雷Mine
			1088: [SCOI2005]扫雷Mine Description 相 信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的 ... 
- StringBuffer与StringBuilder原理与区别
			其实只要找下Google大神就有答案了:StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer 中的方法大都采用了 synchronized ... 
- VS Extension: Open Web Address with Visual Studio Browser
			使用VS 打开链接 using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; ... public ... 
