hadoop中combine,partition和shuffle的疑问

问题描述

hadoop中combine,partition和shuffle的疑问

这是我理解的hadoop函数调用过程,但还是有点疑惑,比如:每个map函数输出都调用一个partition函数(图中为此方式)还是一个partition函数处理所有的map输出,如果图中的过程正确,那么shuffle函数调用发生在哪里?

解决方案

http://dongxicheng.org/mapreduce/hadoop-shuffle-phase/

解决方案二:

本图画得有问题,首先partitioner函数是在combinationer函数之前执行,patritioner是在map往内存中写数据时发生的,而combinationer是在内存通过spill向硬盘写数据时执行的。
shuffle是一个数据复制的函数,负责将map的输出数据复制到reduce中。

时间: 2024-09-18 03:27:00

hadoop中combine,partition和shuffle的疑问的相关文章

Hadoop中Partition深度解析

旧版 API 的 Partitioner 解析 Partitioner 的作用是对 Mapper 产生的中间结果进行分片,以便将同一分组的数据交给同一个 Reducer 处理,它直接影响 Reduce 阶段的负载均衡.旧版 API 中 Partitioner 的类图如图所示.它继承了JobConfigurable,可通过 configure 方法初始化.它本身只包含一个待实现的方法 getPartition. 该方法包含三个参数, 均由框架自动传入,前面两个参数是key/value,第三个参数

Hadoop中的Context使用

Hadoop中的Context使用.简要截取: 本文以经典的wordcount程序为例来说明context的用法: 直接上代码: package MapReduce; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import

hadoop中使用lzo的压缩

在hadoop中使用lzo的压缩算法可以减小数据的大小和数据的磁盘读写时间,不仅如此,lzo是基于block分块的,这样他就允许数据被分解成chunk,并行的被hadoop处理.这样的特点,就可以让lzo在hadoop上成为一种非常好用的压缩格式. lzo本身不是splitable的,所以当数据为text格式时,用lzo压缩出来的数据当做job的输入是一个文件作为一个map.但是 sequencefile本身是分块的,所以sequencefile格式的文件,再配上lzo的压缩格式,就可实现lzo

Hadoop中使用FileStatus类来查看HDFS中文件或目录的元信息

Hadoop中的FileStatus类可以用来查看HDFS中文件或者目录的元信息,任意的文件或者目录都可以拿到对应的FileStatus, 我们这里简单的演示下这个类的相关API: /* */ package com.charles.hadoop.fs; import java.net.URI; import java.sql.Timestamp; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.F

hadoop中的pi值计算

  注意在hadoop中,操作一定要规范.不规范的操作引起exception满天飞······· 其实hadoop中的pi值运算还是挺简单的.在这里主要讲一下这个例子中要注意的地方: [hadoop@master hadoop-1.0.3]$ hadoop jar hadoop-examples-1.0.3.jar pi 10 100 确保是在hadoop-1.0.3目录下,因为hadoop-examples-1.0.3.jar是在这个目录下的.如果在其他目录下运行,会出错,最后导致datano

hadoop中实现定制Writable类

Hadoop中有一套Writable实现可以满足大部分需求,但是在有些情况下,我们需要根据自己的需要构造一个新的实现,有了定制的Writable,我们就可以完全控制二进制表示和排序顺序. 为了演示如何新建一个定制的writable类型,我们需要写一个表示一对字符串的实现: blic class TextPair implements WritableComparable<TextPair> { private Text first; private Text second; public Te

stringbuffer-关于Java中FileInputStream类的一些新手疑问

问题描述 关于Java中FileInputStream类的一些新手疑问 在每次使用FileInputStream的read方法时,需要用到字节数组bytes和真实读取长度len,如代码: public static void read(){ File file = new File("D:/学习/Android/代码/Workplace/Java_8_1_File/a.txt"); try { //针对文件创建一个输入流 InputStream in = new FileInputSt

在Hadoop中保护大数据安全的9个技巧

当企业转变为数据驱动的机器时,其潜力是巨大的:企业所拥有的数据可能成为获得竞争优势的关键.因此,企业的数据和基础设施的安全也变得比以往任何时候都重要. 在许多情况下,企业或组织都可能得到Forrester所说的"有毒的数据".例如,一家无线公司正在收集谁登录哪一个天线塔.他们在线逗留多长时间.他们使用多少数据.他们是在移动还是处于静止状态等数据,这些数据可用来了解用户行为的状况. 这家无线公司也许有许多用户生成的数据:信用卡号码.社会保险号码.购买习惯数据和用户使用任何信息的方式等.关

关于java中加载和初始化的疑问?各位帮忙分析下

问题描述 关于java中加载和初始化的疑问?各位帮忙分析下 public class ExA { private static ExA a = new ExA(); static { System.out.println("父类--静态代码块"); } public ExA() { System.out.println("父类--构造函数"); } { System.out.println("父类--非静态代码块"); } public stat