随笔分类 -  MapReduce

摘要:reducetask并行度同样影响整个job的执行并发度和执行效率,与maptask的并发数由切片数决定不同,Reducetask数量的决定是可以直接手动设置:<!--more--> job.setNumReduceTasks(4); 如果数据分布不均匀,就有可能在reduce阶段产生数据倾斜。 注 阅读全文
posted @ 2019-09-14 20:52 DaBai的黑屋 阅读(462) 评论(0) 推荐(0)
摘要:MapTask的并行度指的是map阶段有多少个并行的task共同处理任务。map阶段的任务处理并行度,势必影响到整个job的处理速度。那么,MapTask并行实例是否越多越好呢?其并行度又是如何决定呢?<!--more--> 一个MapReducejob的map阶段并行度由客户端在提交job时决定, 阅读全文
posted @ 2019-09-14 20:51 DaBai的黑屋 阅读(708) 评论(0) 推荐(1)
摘要:序列化概念<!--more--> 序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 Java序列化(java.io.Serializable) Hadoop序列化的特点 序列化格式特点: 紧凑: 阅读全文
posted @ 2019-09-14 20:51 DaBai的黑屋 阅读(774) 评论(0) 推荐(0)
摘要:在shuffle阶段,大量的数据从map阶段输出,发送到reduce阶段,这一过程中,可能会涉及到大量的网络IO。 输出数据较大时,使用hadoop提供的压缩机制对数据进行压缩,可以指定压缩的方式。减少网络传输带宽和存储的消耗; 可以对map的输出进行压缩(map输出到reduce输入的过程,可以s 阅读全文
posted @ 2019-09-14 20:50 DaBai的黑屋 阅读(298) 评论(0) 推荐(0)
摘要:每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一。 combiner是MR程序中Mapper和Reducer之外的一种组件 combiner组件 阅读全文
posted @ 2019-09-14 20:49 DaBai的黑屋 阅读(820) 评论(0) 推荐(0)
摘要:1. 概述 序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。把字节流转为结构化对象。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。 阅读全文
posted @ 2019-09-14 20:48 DaBai的黑屋 阅读(177) 评论(0) 推荐(0)
摘要:一个: <!--more--> 多个 代码实现: Mapper: 一个: 多个 代码实现: Mapper: .mapreduce.Mapper.Context; public class EmployeeMapper extends Mapper<LongWritable, Text, LongWr 阅读全文
posted @ 2019-09-14 20:47 DaBai的黑屋 阅读(435) 评论(0) 推荐(0)
摘要:在MR中,牢牢记住key时什么,因为key许多默认属性 排序 》key的字典序 分区 》key的哈希值 % reduce task Num 分组 》key相同为一组 <!--more--> x 1 排序 》key的字典序 2 分区 》key的哈希值 % reduce task Num 3 分组 》k 阅读全文
posted @ 2019-09-14 20:47 DaBai的黑屋 阅读(205) 评论(0) 推荐(0)
摘要:MapReduce框架运转在<key,value>键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组<key,value>键值对作为作业的输出,这两组键值对可能是不同的。 <!--more--> 一个MapReduce作业的输入和输出类型如下图所示:可以看出在 阅读全文
posted @ 2019-09-14 20:46 DaBai的黑屋 阅读(218) 评论(0) 推荐(0)
摘要:map阶段处理的数据如何传递给reduce阶段,是MapReduce框架中最关键的一个流程,这个流程就叫shuffle。<!--more--> shuffle: 洗牌、发牌——(核心机制:数据分区,排序,合并)。 shuffle是Mapreduce的核心,它分布在Mapreduce的map阶段和re 阅读全文
posted @ 2019-09-14 20:45 DaBai的黑屋 阅读(281) 评论(0) 推荐(0)
摘要:Reduce大致分为copy、sort、reduce三个阶段,重点在前两个阶段。copy阶段包含一个eventFetcher来获取已完成的map列表,由Fetcher线程去copy数据,在此过程中会启动两个merge线程,分别为inMemoryMerger和onDiskMerger,分别将内存中的数 阅读全文
posted @ 2019-09-14 20:44 DaBai的黑屋 阅读(596) 评论(0) 推荐(0)
摘要:Map阶段流程:input File通过split被逻辑切分为多个split文件,通过Record按行读取内容给map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map tas 阅读全文
posted @ 2019-09-14 20:43 DaBai的黑屋 阅读(851) 评论(0) 推荐(0)
摘要:本地运行模式: 集群运行模式: 总结: mapreduce的运行模式 概念:所谓的运行模式指的是由谁给mr程序提供运算时候所需要的硬件资源 两种模式: 集群模式:程序计算的资源由yarn分配 分布式计算的效果 生产环境线上环境的模型 本地模式:程序计算的资源由程序所在的机器本地系统模拟出 单机计算的 阅读全文
posted @ 2019-09-14 20:42 DaBai的黑屋 阅读(514) 评论(0) 推荐(0)
摘要:<!--more--> 阅读全文
posted @ 2019-09-14 20:42 DaBai的黑屋 阅读(429) 评论(0) 推荐(0)
摘要:MapReduce的处理流程解析 Mapper任务执行过程详解 l第一阶段是把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。默认情况下,Split size = Block size。每一个切片由一个MapTask处理。(getSplits) l第二阶段是对切片中的数据按照一定的规则解 阅读全文
posted @ 2019-09-14 20:41 DaBai的黑屋 阅读(504) 评论(0) 推荐(0)
摘要:MapReduce是一个分布式运算程序的编程,框架核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。 既然是做计算的框架,那么表现形式就是有个输入(input),MapReduce操作这个输入(input),通过本身定义好的计算模型,得到一 阅读全文
posted @ 2019-09-14 20:40 DaBai的黑屋 阅读(443) 评论(0) 推荐(0)
摘要:一个完整的mapreduce程序在分布式运行时有三类实例进程 MRAppMaster:负责整个程序的过程调度及状态协调!<!--more--> MapTask:负责map阶段的整个数据处理流程! ReductTask:负责reduce阶段的整个数据处理流程! MRAppMaster:负责整个程序的过 阅读全文
posted @ 2019-09-14 20:40 DaBai的黑屋 阅读(166) 评论(0) 推荐(0)
摘要:核心: 分而治之,先分再和 俩个阶段: Map阶段(分): 如果任何可以拆分并且没有依赖,那么就可以把复杂的任务拆分成小任务 拆分成下任务后,进行并行计算,提高处理效率 Reduce阶段(合): 把map阶段的各个局部结果进行汇总,得到最终结果! 来源: 来源于生活, 由谷歌提出,主要用于搜索领域, 阅读全文
posted @ 2019-09-14 20:39 DaBai的黑屋 阅读(922) 评论(0) 推荐(0)
摘要:一、 Hadoop High Availability HA(High Available), 高可用,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,分为活动节点(Active)及备用节点(Standby)。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当 阅读全文
posted @ 2019-09-14 20:13 DaBai的黑屋 阅读(233) 评论(0) 推荐(0)
摘要:MapReduce执行流程解析 <!--more--> MapReduce执行流程解析 阅读全文
posted @ 2019-09-11 00:13 DaBai的黑屋 阅读(201) 评论(0) 推荐(0)

Live2D