Hadoop学习
wenpu_Di
内心的强大才是真正的强大
展开
-
Reduce端的Iterable集合的理解:
Iterable: 1.value里边的每个数值在内存中是用完全二叉树存储的形式存储的(小顶堆) 2.小顶堆的顶端(根节点)存储着按排序后的最大或最小值(小顶堆的特性) (到底是最大还是最小根据你的排序规则确定) 3.每次循环一次,小顶堆的堆顶数值都会改变,但是不变的是顶堆的数一定是最大或最小值(小顶堆的特性) 4.当第一次调用这个reduce(Text,Iterable,Context)原创 2016-11-18 21:27:55 · 696 阅读 · 0 评论 -
Hadoop Partition使用实例<转>
Hadoop Partition使用实例<转> 如何使用Hadoop的Partitioner Hadoop里面的MapReduce编程模型,非常灵活,大部分环节我们都可以重写它的API,来灵活定制我们自己的一些特殊需求。今天散仙要说的这个分区函数Partitioner,也是一样如此,下面我们先来看下Partitioner的作用: 对map端输出的数据key作一个散列,使数据能够均匀分布在各个转载 2016-12-11 14:11:49 · 965 阅读 · 0 评论 -
利用MapReduce解决在海量数据中求Top K个数<转>
package jtlyuan.csdn; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path;转载 2016-12-11 14:41:36 · 519 阅读 · 0 评论 -
Hadoop作业构建中的主要方法
在主函数里边有几个方法的说明:Configuration conf = new Configuration(); // 配置设定 Job job = Job.getInstance(conf, “word count”); // 得到作业 job.setJarByClass(WordCount.class); // 主类名job.setOutputKeyClass(); //原创 2016-11-19 14:36:51 · 359 阅读 · 0 评论 -
MapReduce表关联
今天重新学习了表关联,为了以后用到的时候能够快速想到。这里记录下来设计的思想: 由于多表关联跟单表关联一样,甚至如果是两个表,那么的结构更加清新,所以只记录单表关联 单表关联: 所谓单表关联,即使特殊的多表关联,表关联一个思想就是区分出左右表,最后求笛卡尔积即可! 实例: child parent tom lucy tom jack jone luc原创 2016-11-20 16:12:00 · 428 阅读 · 0 评论 -
MapReduce优化问题
总结了一下MR优化问题,涉及到hadoop1.0和2.0的调优 1. 从集群的性能方面: 集群能够同时运行Map或者Reduce任务的最大任务数 假设一台机器最多能同时运行10个Map任务和5个Reduce任务, 这个集群有100台服务器,那么map的任务槽就是1000,Reduce的任务槽就是500 合理的设置Map和Reduce任务数: map:具体原创 2016-11-21 17:47:48 · 322 阅读 · 0 评论 -
MapReduce处理过程分析
Map阶段: 1. 使用job.setInputFormatClass(TextInputFormat)做为输入格式。注意输出应该符合自定义Map中定义的输出。 2. 调用job.setPartitionerClass(),对指定的key落在具体的分区 3. 每个分区内又调用job.setSortComparatorClass()设置的key比较函数类排序(如果没有原创 2016-11-24 09:28:37 · 471 阅读 · 0 评论 -
Map Join和Reduce Join的区别
MapReduce Join对两份数据data1和data2进行关键词连接是一个很通用的问题,如果数据量比较小,可以在内存中完成连接。如果数据量比较大,在内存进行连接操会发生OOM。mapreduce join可以用来解决大数据的连接。 1 思路 1.1 reduce join在map阶段, 把关键字作为key输出,并在value中标记出数据是来自data1还是data2。因为在shuffle阶转载 2016-12-08 10:29:04 · 2668 阅读 · 0 评论