MapReduce
详细学习MapReduce以及Yarn
喵先生呢
优秀的人哪都好,唯一的缺点是让人觉得自己是个垃圾。
展开
-
17.Yarn资源调度器
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。原创 2020-07-13 21:43:21 · 159 阅读 · 0 评论 -
16. MapReduce扩展案例
MapReduce扩展案例1. 倒排索引案例(多job串联)有大量的文本(文档、网页),需要建立搜索索引。代码实现OneIndexMapper/** * @Date 2020/7/14 17:10 * @Version 10.21 * @Author DuanChaojie */public class OneIndexMapper extends Mapper<LongWritable, Text,Text, IntWritable> { String nam原创 2020-07-16 19:54:10 · 151 阅读 · 0 评论 -
15. MapReduce之数据清洗和计数器的应用
在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。原创 2020-07-13 18:00:28 · 204 阅读 · 0 评论 -
14. MapReduce之Join多种应用
Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了。原创 2020-07-13 00:02:23 · 217 阅读 · 1 评论 -
13. ReduceTask并行度
ReduceTask并行度ReduceTask的并行度同样影响整个Job的执行并发度和执行效率,但与MapTask的并发数由切片数决定不同,ReduceTask数量的决定是可以直接手动设置:// 默认值是1,手动设置为4job.setNumReduceTasks(4);1. 测试ReduceTask多少合适实验环境:1个Master节点,16个Slave节点:CPU:8GHZ,内存: 2G实验结论: 改变ReduceTask (数据量为1GB)ReduceTask1510原创 2020-07-12 22:40:23 · 188 阅读 · 0 评论 -
12. MapTask和ReduceTask工作机制
MapTask流程包括:Read阶段、Map阶段、Collect收集阶段、Spill阶段和Combine阶段;ReduceTask流程包括:Copy阶段、Merge阶段、Sort阶段、Reduce阶段;原创 2020-07-12 16:16:53 · 158 阅读 · 0 评论 -
11. OutputFormat数据输出
OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。下面我们介绍几种常见的OutputFormat实现类。原创 2020-07-12 15:47:23 · 649 阅读 · 0 评论 -
10. MapReduce之Shuffle机制☆☆
Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle原创 2020-07-12 15:44:14 · 160 阅读 · 0 评论 -
9. MapReduce工作流程
MapReduce工作流程1. 工作流程图2. 流程详解上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下:MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中。从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件。多个溢出文件会被合并成大的溢出文件。在溢出过程及合并的过程中,都要调用Partitioner进行分区和针对key进行排序。ReduceTask根据自己的分区号,去各个MapT原创 2020-07-12 15:24:46 · 134 阅读 · 0 评论 -
8. Mapper和Reducer源码
文章目录Mapper和Reducer源码Mapper源码Reducer源码☆Mapper和Reducer源码Mapper源码@InterfaceAudience.Public@InterfaceStability.Stablepublic class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> { /** * The <code>Context</code> passed on to the {@link Map原创 2020-07-12 00:14:17 · 146 阅读 · 0 评论 -
7. 自定义FileInputFormat
在企业开发中,Hadoop框架自带的InputFormat类型不能满足所有应用场景,需要自定义InputFormat来解决实际问题。原创 2020-07-10 22:38:29 · 338 阅读 · 0 评论 -
6. FileInputFormat实现类
抽象类FileInputFormat`常见的`实现类`包括:TextInputFormat、KeyValueTextInputFormat、NLineInputFormat、CombineTextInputFormat和自定义InputFormat`等。原创 2020-07-10 22:29:52 · 574 阅读 · 0 评论 -
5. 切片与MapTask并行度决定机制
1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行任务是否越多越好呢?哪些因素影响了MapTask并行度?原创 2020-07-10 14:19:44 · 339 阅读 · 0 评论 -
4. MapReduce-Job提交流程源码和切片源码详解
本文详细的阐述了MapReduce中Job的提交流程的源码分析,重点是切片部分的源码,因为切片数与 MapTask并行度息息相关。可以跟着本文一路debug,然后结合着末尾的两张图就可以理解喽...原创 2020-07-09 20:08:59 · 310 阅读 · 0 评论 -
3. Hadoop序列化
因为Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,Header,继承体系等),不便于在网络中高效传输。所以,Hadoop自己开发了一套序列化机制(Writable)。原创 2020-07-09 01:11:43 · 184 阅读 · 0 评论 -
2. WordCount案例实操
编写的程序分成三个部分:Mapper、Reducer和Driver。原创 2020-07-08 14:01:15 · 1111 阅读 · 0 评论 -
1. MapReduce概述
MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。原创 2020-07-08 13:45:08 · 194 阅读 · 0 评论