MapReduce列子WordCount

  1. 写程序MyWordCount.java
    package org.myorg;
    
    import java.io.IOException;
    import java.util.*;
    
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.conf.*;
    import org.apache.hadoop.io.*;
    import org.apache.hadoop.mapred.*;
    import org.apache.hadoop.util.*;
    
    public class WordCount {
    	public static void main(String[] args) throws Exception {
    		JobConf conf = new JobConf(WordCount.class);
    		conf.setJobName("wordcount");
    
    		//conf.setNumReduceTasks(0);		
    		
    		conf.setOutputKeyClass(Text.class);
    		conf.setOutputValueClass(IntWritable.class);
    		
    		conf.setMapperClass(Map.class);
    		conf.setCombinerClass(Reduce.class);
    		//conf.setReducerClass(Reduce.class);
    	
    		conf.setInputFormat(TextInputFormat.class);
    		conf.setOutputFormat(TextOutputFormat.class);
    		
    		FileInputFormat.setInputPaths(conf, new Path(args[0]));
    		FileOutputFormat.setOutputPath(conf, new Path(args[1]));
    		
    		JobClient.runJob(conf);
    	}
    
    	public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
    		private final static IntWritable one = new IntWritable(1);
    		private Text word = new Text();
    
    		public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
    			String line = value.toString();
    			StringTokenizer tokenizer = new StringTokenizer(line);
    			while (tokenizer.hasMoreTokens()) {
    				word.set(tokenizer.nextToken());
    				output.collect(word, one);
    			}
    		}
    	}
    
    	public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {
    		public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
    			int sum = 0;
    			while (values.hasNext()) {
    				sum += values.next().get();
    			}
    			output.collect(key, new IntWritable(sum));
    		}
    	}
    }
    
     源文档 <http://hadoop.apache.org/docs/r0.18.3/mapred_tutorial.html>

    注:conf.setInputFormat(TextInputFormat.class);    //TextInputFormat是默认的InputFormat。这说明Map类的键是LongWritable类型,存储整个文件的字节偏移量,值是Text类型,是一行内容。StringTokenizer 把行按空格拆分成单词。
    conf.setOutputFormat(TextOutputFormat.class);     //输出格式为TextOutputFormat,把输出记录写成文本行。键值可以使任何类型,因为可以用toString()方法转成字符串。这里的输出键是Text类型,值是IntWritable类型。

     2. 编译

         Mkdir  wordcountsource

        hduser@ubuntu:/usr/local/hadoop$ javac -classpath hadoop-core-1.1.1.jar -d wordcountsource                       MyWordCount.java
        编译java到wordcountsource文件夹下
          如果出现错误:error while writing Map: could not create parent directories
         说明没有写入input文件的权限

     3.生成jar

        hduser@ubuntu:/usr/local/hadoop$ sudo jar -cvf MyWordCount.jar  -C wordcountsource/ .

       在当前目录下生成MyWordCount.jar

      4.在input文件夹下创建file0和file1

         hduser@ubuntu:/usr/local/hadoop/input$ mkdir input    //input文件夹为输入

         hduser@ubuntu:/usr/local/hadoop/input$ sudo gedit file0
         hduser@ubuntu:/usr/local/hadoop/input$ sudo gedit file1

      5.运行MyWordCount.jar

       hduser@ubuntu:/usr/local/hadoop$ sudo bin/hadoop jar MyWordCount.jar org.myorg.MyWordCount              input output

       确保有创建output的权限

      6.查看结果

      hduser@ubuntu:/usr/local/hadoop$ cat output/part-00000

      Bye 1
     Hello 1
    World 2

转载

光伏储能交直流微电网Matlab/Simulink仿真模型 首先是光伏储能交直流微电网,这个也是我还是之前在硕士期间在做光伏扶贫项目时候搭建的仿真,仿真由光伏、蓄电池及负载组成的独立直流微电网,提出电压和电流分段式协同控制策略。接下来我将主要更新关于光伏、风电、储能微电网系统相关的内容,包括具体建模和控制。 阅读详情

相关推荐

Lora无线温湿度传感器方案

综上所述,Lora无线温湿度传感器以其长距离传输、低功耗、高稳定性、精准测量、无线传输以及广泛的应用场景等特点,在环境监测领域展现出了强大的竞争力和广泛的应用前景。Lora无线温湿度传感器广泛应用于各种需要远程监控和数据采集的场景,如仓储、农业、机房、楼宇、交通、工业、矿产、电力等领域。Lora无线温湿度传感器是一种采用Lora无线通信技术进行数据传输的温湿度监测设备。四、产品参数(以某款工业级Lora温湿度传感器为例)

weixin_46632654的博客 759

ubuntu下hadoop运行wordcount程序

本机环境 ubuntu 12 hadoop 1.1.2 首先保证hadoop配置成功 1、在Hadoop的解压目录的如下位置可以找到WordCount.java的源文件 src/examples/org/apache/hadoop/examples/WordCount.java 新建一个wordcount的文件夹,将WordCount.java拷贝至dev/wordcount文件

yonghutwo的专栏 4694

Python读取三菱PLC数据

3、支持自定义的数据读写操作。直接调用Read方法,可以读取到原生的byte数组,然后进行组合数据。1、每次的数据交互您都可以判断是否成功,如果您不判断,如果网络断开或是异常,会影响程序的执行。Qna3E协议的ascii类 MelsecMcAsciiNet。A兼容1E协议的二进制类 MelsecA1ENet。Qna3E协议的二进制类 MelsecMcNet。2、读写操作支持单个数和数组。

weixin_46744807的博客 1999

Hadoop不用eclipse去编译运行WordCount

1,写程序MyWordCount.java hduser@ubuntu:/usr/local/hadoop$ gedit MyWordCount.java package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache

pigHead_chen的专栏 949

从赛题到实战:一份面向高职“区块链技术应用”赛项的食品溯源系统全栈部署与运维指南

本文为高职院校学生备战“区块链技术应用”技能大赛提供了一份详实的食品溯源系统全栈部署与运维指南。内容涵盖从理解赛题业务逻辑、绘制技术蓝图,到搭建4节点FISCO BCOS联盟链、部署管理平台与智能合约,再到核心运维技能与前后端联调测试的完整流程,旨在帮助参赛者将赛题转化为可运行的实战项目,全面提升区块链全栈开发与运维能力。

weixin_29172201的博客 686

【车间调度】车间调度问题的分类

本系列为自己学习调度相关知识的记录,如有误请指出,也欢迎调度方向的小伙伴加我好友共同交流。 车间调度问题的分类 根据工件和车间构成不同,车间调度问题可分为以下几种 1.单机调度问题 在单机调度问题(S,SMP)中,加工系统只有一台机床,待加工的工件有且仅有一道工序,所有工件都在该机床上进行加工。此问题是最简单的调度问题,当生产车间出现瓶颈机床时的调度就可视为此调度问题。 ...

weixin_51656605的博客 7430

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文。 首先要了解一下Hadoop的运行模式: 单机模式(standalone)        单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要

bailang9757的专栏 1075

Python Opencv cv2提取图像中某种特定颜色区域(例如黑字白纸背景下的红色公章提取),并将纯色背景透明化

拜拜PHOTOSHOP- 领导突然让我帮他把公章从图片中抠出来,在确保了不是要做坏事的情况下,我打开了PHOTOSHOP,用魔棒工具一点一点抠,但由于魔棒工具的原理是对比临近区域像素差值,导致封闭字体中的区域无法剔除,而且一点一点抠非常麻烦,愤而PYTHON,使用CV2完美解决。 效果如下(马赛克是我添加的): 任务就是把蓝色的公章抠出来。 效果如上。 代码如下: import cv2 import numpy as np src = cv2.imread(r"imagepath")#这里填你的原图像路

qq_43670549的博客 1万+

Windows和Linux环境MapReduce开发调试部署(eclipse和idea)

开发 Windows+eclipse (1)创建Map/Reduce项目         打开eclipse,点击File--&gt;New--&gt;Other--&gt;Map/Reduce Project,按照步骤操作就可以创建一个Map/Reduce项目,与普通项目不同的是,当创建好Map/Reduce项目后,需要的Hadoop依赖包都自动从Hadoop安装目录中添加进来。如图: ...

L 803

在overleaf中使用bibtex引用参考文献

最近在挑选写tex的平台,挑来挑去,个人感觉overleaf给我带来的体验感是最舒适的。不过由于对内部的文件组织和make进行了一层封装,所以与一般的本地平台编译tex会有一点不同。此处写一下在overleaf中使用bibtex的方法。 在tex中使用bibtex引用文献是一件很舒适的事,毕竟这是tex的优点之一(要是tex比word难用,我干什么不去用word,hhh) 第一步,我们创建一个.bib文件,名字随便起,我这边起为reference.bib。 然后打开谷歌学术,搜索你想要引用的文章,并找到

锦恢的博客 4万+

28、基于图像快速序列视觉呈现(RSVP)的脑机接口特征提取与分类算法综述

本文综述了基于图像快速序列视觉呈现(RSVP)的脑机接口(BCI)中的特征提取与分类算法。RSVP技术通过快速连续呈现图像序列,结合脑电图(EEG)信号分析,实现对目标图像的识别和标记。文章详细介绍了RSVP实验的设计、EEG数据的采集与预处理,并探讨了低信噪比、维度灾难、重叠epoch和不平衡数据集等挑战。针对特征提取,讨论了有监督空间滤波方法(如CSP、xDAWN、LDA波束形成器)的原理和应用。在分类策略部分,涵盖了线性分类技术(如LDA、BLR、LR、SVM)和非线性分类方法(如MLP、CNN)。文

hh234的博客 337

linux航班信息处理mapreduce,linux平台:Eclipse(+IBMmapreduce tool)下运行hadoop

自己乱搞,出了点问题,弄来弄去,总算弄OK了主要就是版本的问题我的开发环境是:Ubuntu,如果安装的版本低,系统更新下1.安装eclipse版本是eclipse3.3.X其他版本会不兼容下好eclipse-java-3.3-linux.tar.gz文件后sudo cp **.tar.gz /usr/lib解压缩sudo -xvf ****.tar.gz2.获取mapreduce tool plu...

weixin_36459720的博客 201

Python 爬虫实战:共享单车数据采集全流程与市场洞察深度剖析

本文介绍了如何利用Python爬虫技术获取和分析共享单车运营数据。文章从项目背景出发,详细阐述了系统架构设计,包括数据抓取、清洗存储、分析和可视化模块。通过Scrapy、BeautifulSoup等工具实现数据采集,使用Pandas进行数据清洗,并借助Matplotlib进行可视化分析。实战部分展示了爬虫代码示例和城市分布、使用频率等分析案例。最终指出数据驱动分析有助于了解行业现状和市场趋势,未来可结合机器学习等方法进行深入洞察。该技术方案为共享单车行业研究提供了有效的数据支持。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2233

大数据之认识MapReduce

认识MapReduce 什么是MapReduce? MapReduce 既是一个编程模型,又是一个计算框架。 模型是对事物共性的抽象,编程模型就是对编程的共性的抽象, 最重要的共性就是:程序设计时,代码的抽象方式、组织方式或复用方式。大概是了解了 可以理解为MapReduce 就是一套抽象好的两个函数,一个是Map ,一个是Reduce。我们可以再这两个函数里面填充计算的业务逻辑。 将MapReduce分为Map和Reduce,Map就是将数据进行切分,Reduce就是将数据进行归类。MapReduce计

weixin_40413961的博客 471

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mapreduce实现对key的排序

最近在学习MapReduce编程遇到很多用MR实现按某一列值排序,或二次排序的类似问题,于是试着用MR实现各种排序问题,最终有点小总结:无需在key对象之外写任何排序函数,MR会完成按key值排序,具体详解如下:   在这之前要先说一下WritableComparable接口。Writable接口大家可能都知道,它是一个实现了序列化协议的序列化对象。在Hadoop中定义一个结构化对象都要实现Wr

evo_steven的专栏 5457

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hadoop基本测试方法

最近在做hadoop的时候,总结了一些hadoop的一些基本的功能运用和一些基本性能测试,记录一下,希望可以帮助大家,由于输出信息太多,在这里只介绍命令,具体输出信息大家可以自己试验一下。不同的hadoop版本里自带的测试类也不尽相同,我的版本是2.7.3,里面的测试类是hadoop-mapreduce-client-jobclient.jar,有的hadoop版本里面的类名是hadoop-Test

鑫鑫23的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

hadoop自带例子wordcount的具体运行步骤

1.在hadoop所在目录“usr/local”下创建一个文件夹input root@ubuntu:/usr/local# mkdir input 2.在文件夹input中创建两个文本文件file1.txt和file2.txt,file1.txt中内容是“hello word”,file2.txt中内容是“hello hadoop”、“hello mapreduce”(分两行)。 root@...

weixin_30815427的博客 277

大数据之Hadoop学习(十一) 在ubuntu的eclipse安装MapReduce,以及运行WordCount程序并打包成.Jar文件在终端执行(超级详细)

Eclipse 上编译和运行 MapReduce 程序一、安装 Hadoop-Eclipse-Plugin二、配置 Hadoop-Eclipse-Plugin三、在 Eclipse 中操作 HDFS 中的文件四、在 Eclipse 中创建 MapReduce 项目五、通过 Eclipse 运行 MapReduce 一、安装 Hadoop-Eclipse-Plugin 要在 Eclipse 上编译和...

qq_42585108的博客 1710

无需安装虚拟机,Windows本地环境下使用Eclipse通过Hadoop进行MapReduce

无需安装虚拟机,Windows本地环境下使用Eclipse通过Hadoop进行MapReduce 这学期的前两个实验都是用Hadoop通过MapReduce来实现大数据分析,老师给出的建议操作系统是Linux。诚然Linux下Hadoop的集群开发是有优势的,但是在编写代码时Linux下的Java配合Hadoop的debug属实是过于复杂,相比之下课程的考察点是对MapReduce的使用,因此使用Windows环境开发也不是不能理解。 文章目录无需安装虚拟机,Windows本地环境下使用Eclipse通过H

weixin_54572146的博客 1794

使用命令行编译、打包、运行WordCount--不用eclipse

1)首先创建WordCount1023文件夹,然后在此目录下使用编辑器,例如vim编写WordCount源文件,并保存为WordCount.java文件 1 /** 2 * Licensed under the Apache License, Version 2.0 (the "License"); 3 * you may not use this file exce...

weixin_30817749的博客 175

hadoop编写MapReduce例子(附有代码)

开发环境:hadoop2.6.5, jdk1.8.  ubuntu14系统   1.在本地写好代码(eclipse写的,当时没用maven,直接把jar引到程序里了) 2.打成jar包(eclipse右键项目,点击export,选择jar包类型),打jar包的时候记得引入程序入口类,以及不加入代码依赖的jar包 3.在集群的master节点上,使用hadoop fs -ls -R /查看h...

璀璨下的一点星辰 4066

基于mapreduce的两个简单例子

Mapreudce开发: (对路由数据进行过滤,只保留想要的几项。只有map没有reduce) import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path

u011773633的博客 2421

eclipse hadoop开发环境配置

win7下安装hadoop完成后,接下来就是eclipse hadoop开发环境配置了。具体的操作如下: 一、在eclipse下安装开发hadoop程序的插件 安装这个插件很简单,haoop-0.20.2自带一个eclipse的插件,在hadoop目录下的 contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar,把这个文件copy到ecl

非同凡想 3万+

在hadoop运行java程序

2130

mapreduce例子---join算法,全局计数器,多job串联,TopN

1. join算法 题如下:                                                                            订单数据表t_order id date pid amount 1001 20150710 ...

七秒永恒 557
上一篇: 前期是老板给你发工资,中期是能力给你发工资,后期是品德给你发工资!
下一篇: PostgreSQL一些简单问题以及解决办法
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值