MapReduce简单实例:wordcount--大数据纪录片第五记

不知道为啥不是很想学习MapReduce方面的知识,不过现在这么想可能过段时间还是免不了去学,这边先记录下一个MapReduce的实例wordcount代码。

1、

pom.xml:

<dependencies>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>RELEASE</version>    </dependency>    <dependency>        <groupId>org.apache.logging.log4j</groupId>        <artifactId>log4j-core</artifactId>        <version>2.8.2</version>    </dependency>    <dependency>        <groupId>org.apache.hadoop</groupId>        <artifactId>hadoop-common</artifactId>        <version>2.8.3</version>    </dependency>    <dependency>        <groupId>org.apache.hadoop</groupId>        <artifactId>hadoop-client</artifactId>        <version>2.8.3</version>    </dependency>    <dependency>        <groupId>org.apache.hadoop</groupId>        <artifactId>hadoop-hdfs</artifactId>        <version>2.8.3</version>    </dependency></dependencies>

2、WordCountMapper:  
import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {   Text k = new Text();   IntWritable v = new IntWritable(1);

@Override   protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {      //获取一行文本      String line = value.toString();      //根据分隔符切分      String[] words = line.split(" ");      //输出      for (String word : words) {         k.set(word);         context.write(k, v);      }   }}

3、WordCountReducer:  
import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {   int sum;   IntWritable v = new IntWritable();

@Override   protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {      //累加求和      sum = 0;      for (IntWritable count : values) {         sum += count.get();      }      //输出      v.set(sum);      context.write(key, v);   }}

4、WordCountDriver:
import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;

public class WordCountDriver {   public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {

//获取配置信息及封装任务      Configuration configuration = new Configuration();      Job job = Job.getInstance(configuration);

//设置jar加载路径      job.setJarByClass(WordCountDriver.class);

//设置map和reduce类      job.setMapperClass(WordCountMapper.class);      job.setReducerClass(WordCountReducer.class);

//设置map输出      job.setMapOutputKeyClass(Text.class);      job.setOutputValueClass(IntWritable.class);

//设置reduce输出      job.setOutputKeyClass(Text.class);      job.setOutputValueClass(IntWritable.class);

//设置输入和输出路径      FileInputFormat.setInputPaths(job, new Path(args[0]));      FileOutputFormat.setOutputPath(job, new Path(args[1]));

//提交      boolean result = job.waitForCompletion(true);      System.exit(result ? 0 : 1);

}}

5、参数设置:

6、结果查询:



原文地址:https://www.cnblogs.com/qugemingzihaonan13/p/9860673.html

时间: 2024-08-03 21:52:45

MapReduce简单实例:wordcount--大数据纪录片第五记的相关文章

蔡先生论道大数据之(十五) :什么是数据化运营?

数据化运营讨论(1) 近现代营销理论代表思想是4P理论,4P是指产品.价格.渠道.促销,它的核心是产品,其他要素都是围绕产品这个核心来的,进入21世纪人们又提出了4C的营销理论,包括消费者.成本.方便性.沟通交流,它的核心是用户是消费者,一切以消费者为核心,这也是目前大多数企业市场营销战略核心思想. 社会在进步,4C理论之后来到了大数据时代,所面对的行业状况是,白热化的市场竞争,越来越严苛的营销预算.堆积如山的海量数据,迫使企业寻找更加适合的营销思路和方法.目前行业主流的理论是3P3C,包括概率

大数据学习第五天

大数据学习第五天 ulimit 查看进程最大文件描述符创建数 -a all详细信息 nginx_config 文件记录 #user nobody ngx_work进程属主 worker_processes 单核进程数 worker_connections 最大连接数 nginx单连接双文件描述符 一开最少开两 sendfile 文件内存暂存功能 减少一次文件拷贝次数 tcp_nopush 缓冲区请求数据合包开关 一般关掉 keepalive_timeout 连接保存时间 反向代理时需要设置为0

简单了解一下大数据的一些基本概念

一.大数据 1.什么是大数据? 大数据(Big data或Megadata):大数据,或称巨量数据.海量数据.大资料,指的是所涉及的数据量规模巨大到无法通过人工,在合理时间达到截取.管理.处理.并整理成为人类所能解读的形式的信息. 2.大数据特点 ①Volume:数据量大,包括采集.存储和计算的量都非常大.大数据的起始计量单位至少是P(1000个T).E(100万个T)或Z(10亿个T). ②Variety:种类和来源多样化.包括结构化.半结构化和非结构化数据,具体表现为网络日志.音频.视频.图

未来五年内将重塑大数据技术的五种趋势

请大家不要再纠结于一块磁盘能保存多少数据或者企业到底会不会采用Hadoop.关于大数据的真正问题在于,企业用户将如何使用Hadoop.我们的系统到底能在智能化道路上走多远.我们又该如何保证这一切都处于控制之下. 过去几年当中,大数据技术已经迎来长足发展:从一个乐观积极的流行词汇变成人见人恨的疑难杂症,关注重点也由纯粹的数据规模转向对类型及速度的追 求.所谓“大数据”及其相关技术在经历了高度重视.详细甄别以及吐故纳新之后,实际成果很可能与我们的认知存在较大差异.然而时至今日,我们正站在历史的 重要

中国大数据六大技术变迁记(CSDN)

大会召开前期,特别梳理了历届大会亮点以记录中国大数据技术领域发展历程,并立足当下生态圈现状对即将召开的BDTC 2014进行展望: 追本溯源,悉大数据六大技术变迁 伴随着大数据技术大会的发展,我们亲历了中国大数据技术与应用时代的到来,也见证了整个大数据生态圈技术的发展与衍变: 1. 计算资源的分布化——从网格计算到云计算. 回顾历届BDTC大会,我们不难发现,自2009年,资源的组织和调度方式已逐渐从跨域分布的网格计算向本地分布的云计算转变.而时至今日,云计算已成为大数据资源保障的不二平台. 2

HDFS简单的shell操作--大数据纪录片第二记

一.基本语法: bin/hadoop fs -具体命令 二.部分简单命令操作 1.显示命令的参数: help ls 2.显示该目录下所有文件: ls 目录 3.在hdfs上创建目录: mkdir 目录 4.从本地剪切到hdfs上: moveFromLocal 本地位置 hdfs上位置 5.追加一个文件A到已存在文件B末尾: appendToFile A B 6.显示文件内容: cat 文件 7.显示文件末尾: tail 文件所在位置 其实hdfs上的shell命令和linux下差不多,不继续列举

[转]算法的简单归类。大数据常用算法

无论是机器学习.模式识别.数据挖掘.统计学习.计算机视觉.语音识别.自然语言处理都涉及到算法. 1.树:决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法.由于这种决策分支画成图形很像一棵树的枝干,故称决策树.在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系.Entropy = 系统的凌乱程度,使用算法ID3, C4.5和

数据分析 大数据之路 五 pandas 报表

pandas:  在内存中或对象,会有一套基于对象属性的方法,   可以视为 pandas 是一个存储一维表,二维表,三维表的工具, 主要以二维表为主 一维的表, (系列(Series)) 二维的表,DataFrame, 也叫报表 三维的表,(面板(Panel)) 文本格式 : CSV 以文本方式存储,  item 之间用逗号分割,记录与记录之间以回车分开 , 可以用 excel 方式打开 json 格式 , 以 key ,value 方式存储 import numpy as np import

大数据(MapReduce的编程细节及其Hive的安装,简单操作)

大数据课程第五天 MapReduce编程细节分析 MapReduce中,Reduce可以没有 (纯数据的清洗,不用Reduce)  job.setNumReduceTasks(0); 设置多个Reduce // 默认在MapReduce中 Reduce的数量是1 job.setNumReduceTasks(3);?//为什么Reduce的数量可以设置为多个内存角度  并行角度 ?//如果Reduce数量多个话,那么生成结果也是多个独立的文件,放置在同一个目录下 Partition 分区 分区的作