
mapreduce
文章平均质量分 89
doegoo
这个作者很懒,什么都没留下…
展开
-
MapReduce-XML处理-定制OutputFormat及定制RecordWriter
这一篇紧接上一篇博客《MapReduce-XML处理-定制InputFormat及定制RecordReader》,上一篇是说明InputFormat和RecordReader,这里说明OutputFormat以及RecordWriter的定制,下面是这次测试的要求:输入数据: hadoop.kms.authentication.type simple原创 2015-12-28 09:29:41 · 1820 阅读 · 1 评论 -
MapReduce-Counters含义
16/03/24 15:13:39 INFO mapreduce.Job: Counters: 49 File System Counters FILE: Number of bytes read=278 job读取本地文件系统的文件字节数。假定我们当前map的输入数据都来自于HDFS,那么在map阶段,这个数据应该是0。但 re转载 2016-03-25 14:01:06 · 4654 阅读 · 0 评论 -
MapReduce-定制Partitioner-使用NLineInputFormat处理大文件-求文件奇偶数行之和
在上一篇《MapReduce-定制Partitioner-求文件奇偶数行之和》博客中有朋友提到“如果文件很大,就被分成了多个record,那么每个record中的文件的奇数和偶数相对于原来的文件来说,就不确定了”这样一个问题,这一篇文章就对这种情况的处理进行说明一下,解决的思路如下:我们只要固定每一个inputSplit的行数,我们就可以确定某一个inputSplit的某一行在整个文件中是奇数原创 2016-03-24 09:58:28 · 1671 阅读 · 0 评论 -
MapReduce-定制Partitioner-求文件奇偶数行之和
这篇博客说明Partioner定制的问题,partion发生在map阶段的最后,会先调用job.setPartitionerClass对这个List进行分区,每个分区映射到一个reducer。每个分区内又调用job.setSortComparatorClass设置的key比较函数类排序。前面的几篇博客的实例都是用的一个reducer,这个实例的完成将使用二个reducer的情况,至于多reduce原创 2015-12-24 09:12:03 · 1472 阅读 · 2 评论 -
MapReduce-Join中级优化-hadoop自带datajoin的解决方法
接着上一篇《》这一篇博客继续说明MapReduce对于Join的操作,这里使用hadoop包中自带的datajoin包来处理,如果是hadoop1.x则包在${HADOOP_HOME}/contrib/datajoin文件夹下。如果是hadoop2.x则该包在${HADOOP_HOME}/share/hadoop/tools/lib下面把包引入工程中就可以使用了。以下是本篇博客要处理的数据,为原创 2016-01-29 14:41:32 · 1651 阅读 · 0 评论 -
MapReuce-Join操作-初级优化
在上一篇《MapReduce-Join操作-初体验》的结论中说明了上述join方法的不足之处,这一篇中将说明针对上一篇的几个缺陷进行一些一些改进,主要是针对上一篇提到几点:1.效率低是因为在reduce端遍历了两次集合2.资源的消耗大是因为重新创建了List来放几乎所有的迭代器中的数据3.不能适用于所有的业务是因为正式环境往往一个reduce的迭代器中的数据量巨大,而List的最大原创 2015-12-30 10:52:41 · 1068 阅读 · 0 评论 -
MapReduce-TopK
上一篇博客中简单的写了一个MapReduce的程序,其中只重写了map()和reduce()方法,但里面还有cleanup(Context context),setup(Context context)和run(Context context)方法可以可以重写这一个实例,我们就说明一下cleanup(Context context),setup(Context context)这两个方法的原创 2015-12-17 16:19:15 · 1800 阅读 · 1 评论 -
MapReduce-自定义比较器
接着上一篇MapReduce-三次排序-曾经想不通的二次排序把其实例的需求改变一下,来说明如何定制GroupingComparatorClass和SortComparatorClass下面就完成这篇博客要完成的问题测试数据如下:id,name,cost1,mr1,32342,mr2,1233,mr3,98774,mr4,3485,mr5,123456,mr6,6原创 2015-12-23 09:11:49 · 2942 阅读 · 0 评论 -
MapReduce-三次排序-曾经想不通的二次排序
上一篇博客说明了怎么自定义Key,而且用了二次排序的例子来做测试,但没有详细的说明二次排序,这一篇说详细的说明二次排序,为了说明曾经一个思想的误区,特地做了一个3个字段的二次排序来说明。后面称其为“三次排序”。测试数据:a1,b2,c5a4,b1,c3a1,b2,c4a2,b2,c4a2,b1,c4a4,b1,c2测试目的:输出以下结果首先根据第一个自段排序,如原创 2015-12-22 09:30:46 · 5700 阅读 · 0 评论 -
MapReduce-求最高温度
学习hadoop以及工作快两年了,刚开始自学的时候,看了很多的视频、文档什么的,也没注意总结过,拿着能用就行,但学的东西越多,越觉得乱,正好趁最近工作不忙,想写一点Mapreduce的程序,第一为了给自己回顾一下以前的知识,第二也是想给如果能对新入门的同学有一点帮忙那也是很好的,这里的写大部分,程序都是来自一些教学视频,以及一些书籍中的实例,但都通过自己实践可行,也同进加入了一些自己的见解。目的是原创 2015-12-17 10:35:22 · 2598 阅读 · 2 评论 -
MapReduce-XML处理-定制InputFormat及定制RecordReader
这一篇说明如何自定义InputFormat以及RecordReader这两个组件,通过使用mapreduce处理xml文件格式的文件来说明其用法,这一个例子来自《hadoop硬实战》一书的技术点12讲解的用法,如果有说明得不清楚的可以自行进行查阅下面就来说说这个实例要达到的目的以下是输入数据: hadoop.kms.authentication.type sim原创 2015-12-25 09:25:26 · 2899 阅读 · 1 评论 -
MapReduce-Join操作-初体验
这一篇博客说说mapreduce的join问题,根据join的文件分别的数据量的大小,可以使用以下几种方式可以选择1.repartition join -- reduce-side join 适用于合并两人个或多个更多的大型数据2.replication join -- map-side join 适用于数据集小于缓存容量的情形3.semi join -- 另一种map-side jo原创 2015-12-29 11:13:59 · 1066 阅读 · 0 评论 -
MapReduce-自定义Key-二次排序
这个实例紧接上一个TopK的实例最后留下的一个问题的解决以及对新的一个技术点的说明,如何自定义输入输出的数据类型,这里也大概引出mapreduce中二次排序的大致思想,但不着重说明二次排序,只是大致说明自定义输入类型的基本步骤,因为做刚接触二次排序的时候当时陷入一个思想上的误区,为了把这个过程记录下来,所以会在下一篇博客中着重说明二次排序,为了说明问题我把他说成是“三次排序”。自定义Key原创 2015-12-21 09:47:11 · 3797 阅读 · 1 评论 -
MapReduce-Counter使用-快速实现大文件行数的统计
在普通的java程序中我们可以定义一个全局的静态变量,然后我们可以在各个类中去使用,实现累加器的功能,然而在mapruduce中怎么实现这一功能呢,各个map可能运行在不同的JVM中(这里不考虑JVM重用的情况),然而我们可以借助MapReduce提供的Counter功能来实现这一功能,下面我们通过一个实例来说明这一个用法。实验要求:快速实现文件行数,以及其中错误记录的统计实验数据:1原创 2016-03-25 16:33:53 · 9347 阅读 · 0 评论