`

mapreduce中入门中要注意的几点

 
阅读更多
在 mapreduce中,比如有如下的词:

I love beijing
i love cina
beijing is the captial of china
   统计的时候,如下图:




注意上图中,最左边的偏移量第一个为1,然后I LOVE CHINA中,I是第4个单词了;所以偏移量为4;
然后进行分词,
然后K3就是把每个单词归类的KEY,然后V3(1,1),就是说I这个单词,统计的频率;


相关的mapper的编写:
public class WordCountMapper extends Mapper<LongWritable, Text, Text, LongWritable> {

	@Override
	protected void map(LongWritable key, Text value, Context context)
			throws IOException, InterruptedException {
		/*
		 * key: 输入的key
		 * value: 数据   I love Beijing
		 * context: Map上下文
		 */
		String data= value.toString();
		//分词
		String[] words = data.split(" ");
		
		//输出每个单词
		for(String w:words){
			context.write(new Text(w), new LongWritable(1));
		}
	}

}

reduce:


public class WordCountReducer extends Reducer<Text, LongWritable, Text, LongWritable>{

	@Override
	protected void reduce(Text k3, Iterable<LongWritable> v3,Context context) throws IOException, InterruptedException {
		//v3: 是一个集合,每个元素就是v2
		long total = 0;
		for(LongWritable l:v3){
			total = total + l.get();
		}
		
		//输出
		context.write(k3, new LongWritable(total));
	}

}


主程序:
public class WordCountMain {

	public static void main(String[] args) throws Exception {
		//创建一个job = map + reduce
		Configuration conf = new Configuration();
		
		//创建一个Job
		Job job = Job.getInstance(conf);
		//指定任务的入口
		job.setJarByClass(WordCountMain.class);
		
		//指定job的mapper
		job.setMapperClass(WordCountMapper.class);
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(LongWritable.class);
		
		//指定job的reducer
		job.setReducerClass(WordCountReducer.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(LongWritable.class);
		
		//指定任务的输入和输出
		FileInputFormat.setInputPaths(job, new Path(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));		
		
		//提交任务
		job.waitForCompletion(true);
	}

  
分享到:
评论

相关推荐

    hbase入门到精通

    ### HBase从入门到精通——关键技术点解析 #### 一、HBase技术概览 **HBase**(Hadoop Database)是一种分布式、可扩展的NoSQL数据库系统,它基于Google Bigtable论文的思想构建而成,并且作为Apache Hadoop生态...

    hadoop 入门

    以下是几个关键点: - **硬件选择**:考虑CPU、内存和磁盘空间,以及网络带宽,以满足处理需求和集群规模。 - **网络规划**:使用高速网络连接所有节点,确保数据传输效率。 - **软件安装**:遵循官方文档进行安装,...

    Hadoop快速入门

    同时,快速入门还包括如何将Hadoop应用到实际的数据处理项目中,比如搭建本地开发环境、进行本地测试、编写MapReduce程序、在Hadoop集群上部署和运行程序等。 Hadoop框架的流行,主要因为其能够处理PB级别的数据量...

    物联网与云计算:Spark基础入门.pdf

    MapReduce作为早期的大数据处理框架,其局限性主要体现在以下几点: 1. 只支持Map和Reduce两种操作,无法满足复杂的计算需求。 2. 迭代计算效率低,对于需要反复迭代的机器学习算法和图计算任务,性能较差。 3. 不...

    spark入门培训

    以上即为Spark入门所需了解的知识点,涉及到了Spark的框架基础、原理、系统架构、环境配置以及核心概念RDD与DataFrame。随着对Spark理解的深入,用户可以有效地构建出适合自身需求的数据处理应用。

    大数据spark3.0入门到精通教程[视频课程].txt打包整理.zip

    本教程将涵盖以下几个关键知识点: 1. **Spark概述**:讲解Spark的起源、设计理念以及它在大数据处理中的地位,对比Hadoop MapReduce,突出Spark的高效与灵活性。 2. **Spark架构**:深入理解Spark的RDD(弹性...

    大数据技术之Hadoop(入门).docx

    ### 大数据技术之Hadoop(入门)知识点详解 #### 第1章 大数据概论 ##### 1.1 大数据概念 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。这些数据具有体量巨大、来源多样化、格式...

    Hadoop、HBase、Hive、Pig、Zookeeper资料整理

    - **zookeeper注意几点.doc**:该文档可能提到了使用ZooKeeper时的关键注意事项,包括配置、操作和维护的最佳实践。 - **j(精)HBase实例.doc**:这份文档可能包含了一些实际的HBase操作示例,展示如何创建表、插入...

    hive编程入门课程

    ### Hive编程入门课程知识点详解 #### 一、Hive概览 Hive是建立在Hadoop之上的数据仓库基础设施,由Facebook赞助开发。它通过提供SQL-like查询语言(HiveQL),使用户能够轻松地对存储在Hadoop分布式文件系统(HDFS...

    hbase-hadoop+database系统入门书籍

    根据提供的文件信息,我们可以总结出以下关于HBase与Hadoop结合使用的大数据系统入门的关键知识点: ### HBase简介 HBase是一种分布式、可扩展的列式存储系统,它基于Google的Bigtable论文设计并实现。HBase是...

    hbase入门到精通.txt

    根据提供的文件信息,“hbase入门到精通.txt”,我们可以推断出文档主要涵盖了HBase的相关知识。下面将基于这个假设来生成一系列与HBase相关的知识点。 ### HBase简介 HBase是一个分布式、多维、排序的映射表,该...

    Hadoop入门学习文档

    ### Hadoop入门学习文档知识点梳理 #### 一、大数据概论 ##### 1.1 大数据概念 - **定义**:大数据是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。 - **特点**: - **Volume(大量)...

Global site tag (gtag.js) - Google Analytics