`
guafei
  • 浏览: 328190 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mapreduce

 
阅读更多
关于map:
    map的个数取决于文件的切割之后的份数,hdfs中的block默认是64m
    切割只能对二进制文件和非文件可行,压缩文件不可行
    切割block的size计算:
    splitSize= max[minSize, min(goalSize, blockSize)]
    minSize= ${mapred.min.split.size}  (这个就是可以设置block的size)
    goalSize= totalSize/${mapred.map.tasks}(这个是计算的size,总文件大小和设定的map    数)
    
关于reduce:
    reduce的个数设定和两个有关,主要是setNumReduceTasks()和getPartition有关,                            setNumReduceTasks很好理解,就是设置reduce个数,但是有时候会发现reduce的个数和设置的不对,这是为什么?map输出之后怎么把对应的文件分配到对应的reduce呢,主要是通过partioner方法,reduce默认的是hashPartioner,我们看下他的方法
/** Use {@link Object#hashCode()} to partition. */
  public int getPartition(K2 key, V2 value,
                          int numReduceTasks) {
    return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
  }

numReduceTasks的值就是setNumReduceTasks的值。不该写这个方法的话,那和setNumReduceTasks值是一样的,有时候有些比如说我就要0号reduce处理的话,那改写这个方法就可以了,设置setNumReduceTasks也没用。

关于文件的切割和读取:
    hadoop的文件切割主要是inputformat接口来实现的,这个接口有两个方法getSplit和getRecordReader,前者主要是用来切割文件用的,后者是用来读取数据的。切割的数据元是存储在InputSplit接口的实现类中,里面定义了这个块的长度,位置信息等等!RecordReader里面定义了如何读取每一条记录,LineReader内部类中的readLine方法就是,里面包括如何处理缺省记录的处理代码!分析见bloghttp://hi.baidu.com/lzpsky/blog/item/99d58738b08a68e7b311c70d.html

关于Combiner:
    map的把数据读入内存然后进行处理之后的数据,会放到内存buffer中,这个buff的值是可以设置的,当阀值到80%的时候,buff会把数据spill一个文件到磁盘中,然后这些split文件会merge生成一个块文件(spilt之后的文件通过索引来聚合)。然后使用Combiner可以使得map端聚合(举例:输出的记录都是key,value键值对,相同的key其实可以合并成为一个key,减少磁盘和网络,combiner就是做这个事情的)。它继承reduce接口





关于通过实现Comparator接口来进行二次排序:
   
   





   
   
  • 大小: 59 KB
分享到:
评论

相关推荐

    基于MapReduce实现决策树算法

    基于MapReduce实现决策树算法的知识点 基于MapReduce实现决策树算法是一种使用MapReduce框架来实现决策树算法的方法。在这个方法中,主要使用Mapper和Reducer来实现决策树算法的计算。下面是基于MapReduce实现决策...

    实验项目 MapReduce 编程

    实验项目“MapReduce 编程”旨在让学生深入理解并熟练运用MapReduce编程模型,这是大数据处理领域中的核心技术之一。实验内容涵盖了从启动全分布模式的Hadoop集群到编写、运行和分析MapReduce应用程序的全过程。 ...

    学生mapreduce成绩分析

    MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。这个模型将复杂的计算任务分解成两个主要阶段:Map(映射)和Reduce(化简),使得在大规模分布式环境下处理大数据变得可能...

    Hadoop mapreduce实现wordcount

    【标题】Hadoop MapReduce 实现 WordCount MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的...

    【MapReduce篇07】MapReduce之数据清洗ETL1

    MapReduce之数据清洗ETL详解 MapReduce是一种基于Hadoop的分布式计算框架,广泛应用于大数据处理领域。数据清洗(Data Cleaning)是数据处理过程中非常重要的一步,旨在清洁和转换原始数据,使其更加可靠和有用。...

    MapReduce实例分析:单词计数

    单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版“Hello World”。单词计数的主要功能是统计一系列文本文件中每个单词出现的次数。本节通过单词计数实例来阐述采用 MapReduce 解决...

    大数据实验四-MapReduce编程实践

    ### 大数据实验四-MapReduce编程实践 #### 一、实验内容与目的 ##### 实验内容概述 本次实验的主要内容是使用MapReduce框架来实现WordCount词频统计功能,即统计HDFS(Hadoop Distributed File System)系统中多个...

    MapReduce 谷歌实验室论文

    MapReduce是一种由谷歌实验室提出的大规模数据处理模型及其相关实现方案。这篇论文详细介绍了MapReduce的概念、工作机制以及在实际中的应用。MapReduce模型通过两个主要函数——Map函数和Reduce函数来处理数据,使得...

    基于MapReduce的Apriori算法代码

    基于MapReduce的Apriori算法代码 基于MapReduce的Apriori算法代码是一个使用Hadoop MapReduce框架实现的关联规则挖掘算法,称为Apriori算法。Apriori算法是一种经典的关联规则挖掘算法,用于发现事务数据库中频繁...

    大数据 hadoop mapreduce 词频统计

    【大数据Hadoop MapReduce词频统计】 大数据处理是现代信息技术领域的一个重要概念,它涉及到海量数据的存储、管理和分析。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据集。Hadoop的...

    mapreduce项目 数据清洗

    MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解成两个主要阶段:Map(映射)和Reduce(化简)。在这个"MapReduce项目 数据清洗"中,我们将探讨...

    Hadoop原理与技术MapReduce实验

    (2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 ...

    Hadoop之MapReduce编程实例完整源码

    一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...

    基于MapReduce的交互可视化平台

    基于MapReduce的交互可视化平台是一个涉及大数据处理和图形界面展示的IT解决方案,旨在通过可视化的方式增强用户对大数据分析结果的理解。文章详细探讨了如何使用MapReduce这一大数据处理模型,结合GPU加速技术,MPI...

    MapReduce求行平均值--MapReduce案例

    在大数据处理领域,MapReduce是一种广泛使用的分布式计算框架,由Google提出并被Hadoop采纳为标准组件。本案例主要探讨如何使用MapReduce来求取数据集的行平均值,这在数据分析、数据挖掘以及日志分析等场景中非常...

    MapReduce基础.pdf

    ### MapReduce基础知识详解 #### 一、MapReduce概述 **MapReduce** 是一种编程模型,最初由Google提出并在Hadoop中实现,用于处理大规模数据集的分布式计算问题。该模型的核心思想是将复杂的大型计算任务分解成较...

    基于MapReduce的电信数据清洗系统设计与实现

    内容概要:本文详细介绍了如何使用MapReduce框架设计和实现一个电信数据清洗系统,涵盖数据预处理、无效数据过滤、重复数据检测与删除以及数据格式转换等关键技术步骤。通过具体的代码示例,解释了各阶段的实现细节...

    论文:MapReduce: Simplified Data Processing on Large Clusters

    ### MapReduce: 简化的大型集群数据处理 #### 一、引言 《MapReduce: Simplified Data Processing on Large Clusters》这篇论文由Google的研究员Jeffrey Dean和Sanjay Ghemawat撰写,旨在介绍一种名为MapReduce的...

    大数据实验5实验报告:MapReduce 初级编程实践

    【MapReduce初级编程实践】是大数据处理中的一项基础任务,主要应用于大规模数据集的并行计算。在这个实验中,我们关注的是如何利用MapReduce来实现文件的合并与去重操作。MapReduce是一种分布式计算模型,由Google...

    hadoop-mapreduce-client-jobclient-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...

Global site tag (gtag.js) - Google Analytics