
mapreduce
文章平均质量分 78
july_2
这个作者很懒,什么都没留下…
展开
-
hadoop二次排序一
1.原理在map阶段的最后,会先调用job.setPartitionerClass对这个List进行分区,每个分区映射到一个reducer。每个分区内又调用job.setSortComparatorClass设置的key比较函数类排序。可以看到,这本身就是一个二次排序。如果没有通过job.setSortComparatorClass设置key比较函数类,则使用key的实现的compareTo方转载 2012-11-13 10:59:18 · 484 阅读 · 0 评论 -
hadoop二次排序三
例子2: package temp;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop.io.Text;import org.apache.hadoop.io.WritableComparable;原创 2012-11-13 11:02:02 · 565 阅读 · 0 评论 -
mapreduce 多种输入
1.多路径输入1)FileInputFormat.addInputPath 多次调用加载不同路径FileInputFormat.addInputPath(job, new Path("hdfs://RS5-112:9000/cs/path1"));FileInputFormat.addInputPath(job, new Path("hdfs://RS5-112:9000/cs/pat原创 2012-11-22 11:53:18 · 8851 阅读 · 3 评论 -
hadoop二次排序二
例子1:package example;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;impo原创 2012-11-13 11:00:37 · 508 阅读 · 0 评论 -
hadoop中的各种排序
1:shuffle阶段的排序(部分排序)shuffle阶段的排序可以理解成两部分,一个是对spill进行分区时,由于一个分区包含多个key值,所以要对分区内的按照key进行排序,即key值相同的一串存放在一起,这样一个partition内按照key值整体有序了。第二部分并不是排序,而是进行merge,merge有两次,一次是map端将多个spill 按照分区和分区内的key进行merge,转载 2012-11-13 13:13:52 · 609 阅读 · 0 评论 -
Hadoop中两表JOIN的处理方法
1. 概述在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的。而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧。本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法。2. 常见的join方法介绍假设要进行join的数据分别来自File转载 2012-11-13 14:29:30 · 517 阅读 · 0 评论 -
hadoop多输出
旧API中有 org.apache.hadoop.mapred.lib.MultipleOutputFormat和org.apache.hadoop.mapred.lib.MultipleOutputs在新API中 用 org.apache.hadoop.mapreduce.lib.output.MultipleOutputs 整合了上面旧API两个的功能MultipleOutputs 作原创 2012-11-22 16:23:19 · 2874 阅读 · 0 评论 -
深度分析如何在Hadoop中控制Map的数量
很多文档中描述,Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数决定。在默认情况下,最终input占据了多少block,就应该启动多少个Mapper。如果输入的文件数量巨大,但是每个文件的size都小于HDFS的blockSize,那么会造成启动的Mapper等于文件的数量(即每个文件都占据了一个block),那么很可能造成启动的Mapper数量超出限制而导转载 2013-02-01 10:45:15 · 340 阅读 · 0 评论