Hadoop笔记(4)_MapReduce
文章平均质量分 77
仅供参考
TryBest_
与bug奋战到底!又不懂的问题的可以私信我噢,有问必答!
展开
-
第7节、MapReduce_压缩
4.1 概述1)压缩的好处和坏处压缩的优点:以减少磁盘 IO、减少磁盘存储空间。压缩的缺点:增加 CPU 开销。(压缩和解压缩的过程需要进过CPU的计算,占用CPU资源)2)压缩原则(1)运算密集型的 Job,少用压缩(2)IO 密集型的 Job,多用压缩4.2 MR 支持的压缩编码1)压缩算法对比介绍压缩格式Hadoop自带算法文件扩展名是否可切片换成压缩格式后,原来的程序是否需要修改DEFLATE是,直接使用DEFLATE.deflate否和文本处原创 2021-12-25 15:34:24 · 520 阅读 · 0 评论 -
第6节、MapReduce核心框架原理_核心_
MapReduce核心框架原理3.1 InputFormat 数据输入选择数据读取的方式(常用的):1.默认按行读取<k,v> k:偏移量 v:这一行内容2.FileInputFormat3.TextInputFormat4.CombineTextInputFormat5.自定义读取方式等3.1.1 切片与 MapTask 并行度决定机制1)问题引出MapTask 的并行度决定 Map 阶段的任务处理并发度,进而影响到整个 Job 的处理速度。思考:1G 的数据,启动原创 2021-12-25 15:33:44 · 474 阅读 · 0 评论 -
第5节、Debug调试源码:获取job执行原理
1.进入job类源码(1)、在提交job的位置打断点,然后右键提交(2)、双击选中waitForCompletion,强制进入,就到了Job类里面2.在Job类中打断点1. 在submit();处打断点2. 进入submit();3. 在summit中打断点 以便于调试3.1 ensureState(JobState.DEFINE);判断Job的状态3.2 setUseNewAPI();处理新旧API兼容性问题3.3 强制进入connect();选择客户端:YARN或原创 2021-12-25 15:26:59 · 424 阅读 · 0 评论 -
第4节、MapReduce_切片源码解析
一、切片源码1.进入到切片:(1)、进入到提交job:(2)、进入submit();(3)、进入到JobSubmitter方法return submitter.submitJobInternal(Job.this, cluster);(4)、进入到切片maps = writeNewSplits(job, jobSubmitDir);(5)、进入List<InputSplit> splits = input.getSplits(job);已成功进入到FileInp原创 2021-12-25 15:22:27 · 806 阅读 · 0 评论 -
第3节、MapReduce_序列化
第2节、序列化2.1序列化的概述1)什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2)为什么要序列化般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的” 对象,可以将“活的”对象发送到远程计算机。3)为什么不用 Java 的序列化Ja原创 2021-12-25 15:19:05 · 504 阅读 · 0 评论 -
第2节、Debug调试源码_获取MapReduce执行详细过程
1.点击调试,跳转到Mapper2.进入setup(context);对程序初始化3.初始化结束4.进入while后5.强制进入map()方法观看:getCurrentKey()6.然后出去,回到while7.强制进入getCurrentValue()8.退出9.再进入,就到了WordCountMapper的map方法里面10.往下依次执行两行,得到数据中的第一行内容<key,value>,key偏移量第二行运行后得到的是value的值,即第一行的内容:原创 2021-12-25 15:18:34 · 527 阅读 · 2 评论 -
第1节、MapReduce概述
1.1、MapReduce定义(1)、MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。(2)、MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。1.2、MapReduce优缺点1.2.1 优点(1)易于编程它简单的实现一些接口,就可以完成一个分布式程序,用户只需要根据自己业务逻辑写出代码,结合自身默认代码即可。(2)良好的拓展性可动态增加服务器来扩展它的原创 2021-12-25 15:18:04 · 537 阅读 · 0 评论