Hadoop基础-MapReduce的Combiner用法案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编写年度最高气温统计 如上图说所示:有一个temp的文件,里面存放的是每年的数据,该数据全部是文本内容,大小2M左右,我已将他放在百度云(链接:https://pan.baidu.com/s/1CEcHAXlII2kKxbn1dmTPKA 密码:jgp0),当你下载后,看到该文件的第15列到19列存放的是年份,而第87列到92列存放的是温度,注意999是无效值,需…
Hadoop基础-MapReduce的Partitioner用法案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Partitioner关键代码剖析 1>.返回的分区号 2>.partitioner默认是通过hash方法实现的 返回的是一个int类型的数组: 3>.HashPartitioner 接下来咱们就看看Partition在MapReduce的作用是什么吧. 二.Partitioner在MapReduce的位置 1>.什么是Partitioner…
Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习MapReduce时的一些琐碎的学习笔记, 方便自己以后查看.在调用API的时候,可能会需要maven依赖,添加依赖的包如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.ap…
Hadoop基础-MapReduce的工作原理第一弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在本篇博客中,我们将深入学习Hadoop中的MapReduce工作机制,这些知识将为我们随后学习写MapReduce高级编程奠定基础. 一.剖析MapReduce作业运行机制 MapReduce是hadoop的编程模型,它的核心思想就是映射(Map)和化简(Reduce). 1>.作业的提交 可以通过一个简单的方法调用来运行MapReduce作业:Job对象的submit()…
Hadoop基础-MapReduce的常用文件格式介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MR文件格式-SequenceFile 1>.生成SequenceFile文件(SequenceFileOutputFormat) The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across cl…
Hadoop基础-MapReduce的Join操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.连接操作Map端Join(适合处理小表+大表的情况) no001 no002 no003 no004 no005 no006 no007 no008 orders.txt 文件内容 linghunbaiduren yinzhengjie alex linhaifeng wupeiqi xupeicheng changqiling laowang customers.txt 文…
Hadoop基础-MapReduce的排序 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MapReduce的排序分类 1>.部分排序 部分排序是对单个分区进行排序,举个简单的例子,第一个分区中的数据为1,3,5:而第二个分区为2,4,这两个分区的值看起来是没有连续性的,但是每个分区中的数据又是排序的!下面是我画的一个草图: 2>.全排序 全排序是对所有分区中的数据均排序,比如第一个分区的值为1,2,3,而第二个分区为4,5 很显然2个分区是经过排序的,可以明显的看清楚…
Hadoop基础-MapReduce的数据倾斜解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据倾斜简介 1>.什么是数据倾斜 答:大量数据涌入到某一节点,导致此节点负载过重,此时就产生了数据倾斜. 2>.处理数据倾斜的两种方案 第一:重新设计key: 第二:设计随机分区: 二.模拟数据倾斜 screw.txt 文件内容 1>.App端代码 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzh…
Hadoop基础-MapReduce的工作原理第二弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Split(切片)  1>.MapReduce处理的单位(切片) 想必你在看MapReduce的源码的时候,是不是也在源码中看到了一行注释“//Create the splits for the job”(下图是我跟源码的部分截图),这个切片是MapReduce的最重要的概念,没有之一!因为MapReduce处理的单位就是切片.  2>.逻辑切割 还记得hdfs存储的默认…
1. Combiner概述 2. 自定义Combiner实现步骤 1). 定义一个Combiner继承Reducer,重写reduce方法 public class WordcountCombiner extends Reducer<Text, IntWritable, Text,IntWritable>{ @Override protected void reduce(Text key, Iterable<IntWritable> values,Context context)…