MapReduce排序分组
来源:互联网 发布:php array diff key 编辑:程序博客网 时间:2024/06/10 03:23
一、什么是inputSplit
InputSplit是指分片,在MapReduce当中作业中,作为map task最小输入单位。分片是基于文件基础上出来的而来的概念,通俗的理解一个文件可以切分为多少个片段,每个片段包括了<文件名,开始位置,长度,位于哪些主机>等信息。在MapTask拿到这些分片后,会知道从哪开始读取数据。
二、Combiner Partitioner Shuffle
Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能
Partitioner:规定哪个key到哪个Reducer的分配过程。分区Partitioner主要作用在于以下两点:
shuffle:针对多个map任务的输出按照不同的分区(Partition)通过网络复制到不同的reduce任务节点上,这个过程就称作为Shuffle。
三、MapReduce排序分组
private static class A implements WritableComparable<MyNewKey> {
long firstNum;
long secondNum;
?
public MyNewKey() {
}
?
public MyNewKey(long first, long second) {
firstNum = first;
secondNum = second;
}
?
@Override
public void write(DataOutput out) throws IOException {
out.writeLong(firstNum);
out.writeLong(secondNum);
}
?
@Override
public void readFields(DataInput in) throws IOException {
firstNum = in.readLong();
secondNum = in.readLong();
}
?
/*
* 当key进行排序时会调用以下这个compreTo方法
*/
@Override
public int compareTo(MyNewKey anotherKey) {
long min = firstNum - anotherKey.firstNum;
if (min != 0) {
// 说明第一列不相等,则返回两数之间小的数
return (int) min;
} else {
return (int) (secondNum - anotherKey.secondNum);
}
}
}
A implements WritableComparable{
}
IntWritable x-->key int
A---->key
map(k1,v1) // 1,5-->A a1=A(1,5);
k2=A
v2=NullWritable
reduce(k2,v2)
k2->split(1,5)->k3=1 v3=5-->context
Top-key
1
2
3
4
5
class mapper{ //mapper start
1.setup()-------init 1
int[5] tops;
2.map(k1,v1){ // split m-->map m
String val=v1.tostring();
Arrays.sort(tops);
if(tops[0]<val)
tops[0]=val
for(tops)
}
3.cleanup()------------destory 1
{
for(i:tops)
context.write(i,tops[i]); //output
}
} //mapper end
output
1 5
2 4
3 3
- MapReduce排序分组
- MapReduce实现分组排序
- MapReduce框架排序和分组
- MapReduce中的排序和分组
- MapReduce处理二次排序(分区-排序-分组)
- 5 mapreduce的组合,排序,分组
- mapreduce,自定义分区,分组,排序实现join
- MapReduce的自定义排序、分区和分组
- MapReduce二次排序分区,分组优化
- Mapreduce中分组排序的一些认识
- mapreduce GroupingComparator mapreduce排序规则和分组规则
- mapReduce分组
- mapreduce之分区,分组,排序,二次排序的综合应用
- 关系型MapReduce模式:选择、分组和组内排序
- MapReduce的自制Writable分组输出及组内排序
- MapReduce的自制Writable分组输出及组内排序
- MapReduce的自制Writable分组输出及组内排序
- MapReduce的自制Writable分组输出及组内排序
- 多线程的sleep,join,yield,wait,notify。
- STM32时钟模块 STM32F103RCT6
- activiti中出现Error querying database.Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
- Java源码分析之ArrayList(下)
- PL/SQL连接oracle常见小结
- MapReduce排序分组
- Linux中最常见的文本查找与处理工具
- 百度之星1004度度熊的午饭时光
- 第五章:利用计算属性写一个购物车案例
- 冒泡排序的Java实现、性能分析以及适用场景
- 百联OJ:2723:不吉利日期
- DescriptionResourcePathLocationType An error occurred while filtering resourcesTESTVIDEOline
- hdu 5938 贪心 策略(2016年中国大学生程序设计竞赛(杭州))
- (笔记)罗辑思维-学习的真相