![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MapReduce
老菜啦
这个作者很懒,什么都没留下…
展开
-
Hadoop优化
1.MapReduce 跑的慢的原因2.MapReduce优化方法1.数据输入阶段2.Map阶段3.reduce阶段4.I/O传输5.数据倾斜问题及优化方法6.常用的调优参数(1)以下参数是在用户自己的MR应用程序中配置就可以生效(mapred-default.xml)配置参数参数说明mapreduce.map.memory.mb一个MapT...原创 2020-03-02 13:16:35 · 142 阅读 · 0 评论 -
Yarn资源调度器
1.Yarn基本架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成2.yarn工作机制工作机制详解(1)MR程序提交到客户端所在的节点。(2)YarnRunner向ResourceManager申请一个Application。(3)RM将该应用程序的资源路径返回给YarnRunner。(4)该...原创 2020-03-02 13:05:13 · 113 阅读 · 0 评论 -
Hadoop数据压缩
1.概述压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、 Shuffle和Merge要花大量的时间,尤其是数据规模很大和工作负载密集的情况下,因此,使用数据压缩显得非常重要。鉴于磁盘I/O和网络带宽是Hadoop的宝贵资源,数据压缩对于节省资源、最小化磁盘I/O和网络传输非常有帮助。可以在任意MapRedu...原创 2020-03-01 20:53:32 · 176 阅读 · 0 评论 -
MapReduce之Join应用
1.Reduce JoinMap端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了。2.Map Joi...原创 2020-03-01 20:37:33 · 96 阅读 · 0 评论 -
OutputFormat接口实现类
1.文本输出TextOutputFormat默认的输出格式是TextOutputFormat,他把每条记录写为文本行。他的键和值可以是任意类型,因为TextOutputFormat调用toString()方法把它们转换成字符串。2.SequenceFileOutputFormat将SequenceFileOutputFormat输出作为后续MapReduce任务的输入,这便是一种好的输出格式...原创 2020-03-01 20:28:36 · 278 阅读 · 0 评论 -
MapReduce工作流程
1.MapReduce工作流程图2.流程详解上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下:1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件3)多个溢出文件会被合并成大的溢出文件4)在溢出过程及合并的过程中,都要调用...原创 2020-02-29 21:11:07 · 163 阅读 · 0 评论 -
MapRreduce常用自定义类和方法(持续更新)
1. 自定义Bean对象实现序列化接口(Writable)(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造public FlowBean() { super();}(3)重写序列化方法@Overridepublic void write(DataOutput out) throws IOException { out.writeL...原创 2020-02-29 20:54:40 · 359 阅读 · 0 评论 -
自定义InputFormat实操
(1)自定义InputFromatpackage inputformat;import org.apache.hadoop.io.BytesWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.InputSplit;import org.apache.hadoop.mapreduce.R...原创 2020-02-28 20:36:23 · 439 阅读 · 0 评论 -
MapReduce学习之FileInputFormat实现类
FileInputFormat常见的接口实现类包括:TextInputFormat、KeyValueTextInputFormat、NLineInputFormat、CombineTextInputFormat和自定义InputFormat等。1.TextInputFormat(输入k,v类型为LongWritable,Text)2.KeyValueTextInputFormat(输入k,v...原创 2020-02-28 20:32:08 · 238 阅读 · 0 评论 -
FileInputFormat和CombineTextInputFormat切片机制
1. FileInputFormat切片机制2. CombineTextInputFormat切片机制框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。1、应用场景:CombineTextInputFormat用于小文件过多的场景,...转载 2020-02-27 21:18:29 · 552 阅读 · 0 评论 -
Job提交流程和切片源码详解
1.Job提交流程源码详解waitForCompletion()submit();// 1建立连接 connect(); // 1)创建提交Job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交job submitt...原创 2020-02-27 21:09:41 · 255 阅读 · 2 评论 -
切片与MapTask并行度决定机制
MapTask并行度决定机制数据块:Block是HDFS物理上把数据分成一块一块。数据切片:数据切片只是逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。...原创 2020-02-27 21:04:37 · 134 阅读 · 1 评论 -
Hadoop序列化(含案例)
1. 序列化概述2. 自定义Bean对象实现序列化接口(Writable)在企业开发中往往常用的基本序列化类型不能满足所有需求,比如在Hadoop框架内部传递一个bean对象,那么该对象就需要实现序列化接口。具体实现bean对象序列化步骤如下7步。(1)必须实现Writable接口(implements Writable)(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造...原创 2020-02-27 20:55:07 · 246 阅读 · 0 评论 -
MapReduce案例之WordCount
1. 环境准备在maven项目的pom.xml文件中添加如下依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version&...原创 2020-02-27 13:59:23 · 151 阅读 · 0 评论 -
MapReduce概述
1. MapReduce定义2. MapReduce优缺点3. MapReduce核心思想1)分布式的运算程序往往需要分成至少2个阶段。2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。4)MapReduce编程模型只能包含一个Map阶段和一个...原创 2020-02-27 13:49:47 · 177 阅读 · 0 评论