![](https://img-blog.csdnimg.cn/20190929171547783.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
大数据之Hadoop(MapReduce、YARN)
Hadoop之
MapReduce
念达
沸腾的时光怎能被荒芜
展开
-
1)Hadoop之MapReduce(概述)
概述 MapReduce的定义: MapReduce是一个分布式运算程序的编程框架 MapReduce的核心功能是将用户编写的代码和其自带的组件整合成完整的分布式运算程序,并 行运算在Hadoop集群上 MapReduce的优缺点 优点: ①易于编程 ②良好的扩展性 ③容错性高:若有一个节点挂了,可以将运算任务转移到另一个节点,不至于任务运行失败 ④时候PB级以上的大数据的离线处理 ...原创 2019-09-25 20:40:15 · 103 阅读 · 0 评论 -
2)Hadoop之MapReduce(序列化)
Hadoop序列化 序列化概述 什么是序列化和反序列化: ①序列化就是将内存中的对象转化成字节序列(或其他数据传输协议),以便存储到磁盘中(持 久化)或进行网络传输 ②反序列化:就是将收到的字节序列(或其他数据传输协议)或者磁盘持久化数据转化成内存中的对象 为什么不用Java序列化: Java的序列化是重量级序列化框架,一个对象被序列化后会夹带很多其他信息(校验信息,继承体系等),不便于网络传...原创 2019-09-25 23:35:16 · 185 阅读 · 0 评论 -
3)Hadoop之MapReduce(MapReduce框架原理)
MapReduce框架原理1 InputFormat数据输入 切片与MapTask并行度的决定机制 问题引出 ①MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度。 ②思考:1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行任务是否越多越好呢?哪些因素影响了MapTa...原创 2019-09-26 14:46:41 · 125 阅读 · 0 评论 -
4)Hadoop之MapReduce(MapReduce工作流程(shuffle、分区、排序))
MapReduce详细工作流程一: 如图 MapReduce详细工作流程二: 如图 流程详解: 上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下: MapTask搜集map()方法的kv对,放入内存缓冲区中 从内存不断溢写到本地磁盘文件,可能会溢出多个文件 多个溢出文件会被合并成大的溢出文件 在...原创 2019-09-29 16:16:07 · 753 阅读 · 0 评论 -
5)Hadoop之MapReduce(排序案例)
Combiner合并案例: 需求: 统计过程中对每一个MapTask的输出进行局部汇总,以减小网络传输量即采用Combiner功能。 需求分析: 案例实操-方案一 ①增加一个WordcountCombiner类继承 public class WordcountCombiner extends Reducer<Text, IntWritable, Text, IntWrita...原创 2019-09-29 17:11:00 · 320 阅读 · 0 评论 -
6)Hadoop之MapReduce(MapTask、ReduceTask工作机制)
MapTask工作机制: Read阶段: MapTask通过用户编写的RecorderReader,从输入的InputSplit中解析出一个个的key/vale; Map阶段: 该阶段主要是将解析出的key/value交给用户编写的map()方法处理,并产生一系列新的key/value; Collect收集阶段: 结束map()方法中的数据处理后,一般会调用OutputCollector....原创 2019-09-29 20:08:52 · 229 阅读 · 0 评论 -
7)Hadoop之MapReduce(OutputFormat、Join)
OutputFormat数据输出 OutputFormat接口实现类 OutputFormat是所有MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口: 文本输出:TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行,它的键和值可以为任何类型,TextOutputFormat可以调用toStr...原创 2019-09-30 11:18:38 · 125 阅读 · 0 评论 -
8)Hadoop之MapReduce(计数器应用,数据清洗(ETL)案例)
计数器应用 概述: Hadoop为每个作业维护若干计数器,以描述多项指标。例如:某些计数器记录着已处理的字节数和记录数,使用户可以监控已处理的输入数据量和已经产生的输入数据量。 计数器API: 采用枚举的方式统计计数 enum MyCounter{MALFORORMED,NORMAL} context.getCounter(MyCounter.MALFORORMED).increment(1)...原创 2019-10-03 16:20:01 · 615 阅读 · 0 评论 -
10)Hadoop数据压缩
概述 压缩技术能有效减少底层存储系统(HDFS)的读写字数。压缩提高了网络带宽和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、Shuffle、Merge要花费大量时间,尤其是=在数据规模很大和工作负载很密集的时候,数据压缩显得非常重要; 鉴于磁盘IO和网络带宽是Hadoop的宝贵资源,数据压缩对于节省资源,最小化磁盘I/O和网络传输非常有帮助,可以在任意MapReduce阶段...原创 2019-10-05 21:29:46 · 136 阅读 · 0 评论 -
11)Hadoop之YARN
基本架构 YARN主要由ResourceManager、NodeManager、ApplicationMaster、Container等组件构成,如下图所示: Yarn工作机制 Yarn运行机制,如图所示: 工作机制详解: MR程序提交到客户端所在的节点 YarnRunner向ResourceManager申请一个Application。 RM将应用程序的资源路径返回给YarnRunn...原创 2019-10-05 23:26:59 · 81 阅读 · 0 评论 -
12)Hadoop企业优化
MapReduce 跑的慢的原因 MapReduce效率的瓶颈主要有两点: 计算机性能: CPU、内存、磁盘健康、网络 I/O操作优化: 数据倾斜 Map和Reduce个数设置不合理 Map运行时间太长,导致Reduce等待时间过长 小文件过多 大量的不可分块的超大文件 Spill溢写次数过多 Merge次数过多 MapReduce优化方法 MapReduce优化方法主要从六个方面考虑:...原创 2019-10-06 22:43:48 · 129 阅读 · 0 评论 -
13)Hadoop之MapReduce(扩展案例)
倒排索引案例(多job串联) 需求及分析:有大量的文本(文档,网页),需要建立搜索索引(如下图所示) 第一次处理: (1)第一次处理,编写OneIndexMapper类 public class OneIndexMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ String name; T...原创 2019-10-07 20:27:52 · 178 阅读 · 0 评论