hadoop
op1sreal
这个作者很懒,什么都没留下…
展开
-
Hadoop MapReduce工作流程图示与详解
1)Map阶段图示: 2)Reduce阶段图示: 3)Shuffle过程: Shuffle过程只是从map第7步开始到reduce第16步结束,具体Shuffle过程详解,如下: (1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中 (2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件 (3)多个溢出文件会被合并成大的溢出文件 (4)在溢出过程及合并的过程中,都要调用Partitioner进行分区和针对key进行排序 (5)ReduceTask根据自..原创 2020-10-14 02:10:00 · 1068 阅读 · 0 评论 -
Hadoop Mapreduce CombineTextInputFormat切片机制
CombineTextInputFormat切片机制 1)TextInputFormat切片弊端: 框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。 2)CombineTextInputFormat应用场景: CombineTextInputFormat用于小文件过多的场景,它可以将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就.原创 2020-10-13 22:44:02 · 154 阅读 · 0 评论 -
Hadoop Mapreduce FileInputFormat切片机制
1)切片机制: 2)参数设置:原创 2020-10-13 22:30:07 · 181 阅读 · 0 评论 -
Hadoop HDFS DataNode 工作机制
图示: 文字: (1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 (2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。 (3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 (4)集群..原创 2020-10-13 22:17:47 · 149 阅读 · 0 评论 -
Mapreduce Job提交流程源码和切片源码详解
1)Job提交流程源码详解: 图示: 代码: waitForCompletion() submit(); // 1建立连接 connect(); // 1)创建提交Job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交job submitter.submitJobInternal(Job.this, cluster) .原创 2020-10-13 22:17:19 · 148 阅读 · 0 评论 -
HDFS SecondaryNameNode CheckPoint流程示意图
为什么需要CheckPoint? NN和2NN工作机制: 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的FsImage。 这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦N原创 2020-10-13 20:38:20 · 249 阅读 · 0 评论 -
Hadoop HDFS 读数据详细流程图示
图示: 文字: (1)客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。 (2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。 (3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。 (4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。 ...原创 2020-10-13 19:44:40 · 159 阅读 · 0 评论 -
Hadoop HDFS 写数据详细流程图示
图示: 文字: (1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 (2)NameNode返回是否可以上传。 (3)客户端请求第一个 Block上传到哪几个DataNode服务器上。 (4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。 (5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调..原创 2020-10-13 19:31:22 · 293 阅读 · 0 评论 -
Hadoop HDFS小文件优化方法
HDFS小文件弊端: HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。 优化方式概览: 在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。 在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。 在MapReduce处理时,可采用CombineTextInputFormat提高效率。原创 2020-10-11 16:26:20 · 139 阅读 · 0 评论 -
Hadoop MapReduce在实际场景中的优化
一、MapReduce跑的慢的原因 MapReduce程序效率瓶颈: 1. 计算机性能 cpu、内存、磁盘健康、网络 2. I/O操作优化 数据倾斜 Map和Reduce数设置不合理 Map运行时间太长,导致Reduce等待太久 小文件过多 大量的不可分块的超大文件 Spill次数过多 Merge次数过多 二、MapReduce优化方法 MapReduce优化方法主要从六个方面考虑: 数据输入 Map阶段 Reduce阶段 IO传输 数据倾斜问题 常用的调优参原创 2020-10-11 15:52:59 · 208 阅读 · 0 评论 -
hadoop mapreduce Shuffle 过程详解
map 阶段处理的数据如何传递给 reduce 阶段,是 MapReduce 框架中最关键的一个流程,这个流程就叫 shuffle shuffle: 洗牌、发牌 ——(核心机制:数据分区,排序,分组,规约,合并等过程) shuffle 是 Mapreduce 的核心,它分布在 Mapreduce 的 map 阶段和 reduce 阶段。一般把从 Map 产生输出开始到 Reduce 取得数据作为输入之前的过程称作 shuffle。 Collect阶段:将MapTask的结果输出到默认大小为1...原创 2020-09-25 16:01:05 · 367 阅读 · 0 评论 -
ReduceTask 工作机制和 ReduceTask 并行度
Reduce 大致分为 copy、sort、reduce 三个阶段,重点在前两个阶段。copy 阶段包含一 个 eventFetcher 来获取已完成的 map 列表,由 Fetcher 线程去 copy 数据,在此过程中 会启动两个 merge 线程,分别为 inMemoryMerger 和 onDiskMerger,分别将内存中的 数据 merge 到磁盘和将磁盘中的数据进行 merge。待数据 copy 完成之后,copy 阶段就 完成了,开始进行 sort 阶段,sort 阶段主要是执行 fin..原创 2020-09-25 15:46:35 · 131 阅读 · 0 评论 -
MapTask运行过程与原理详解
整个Map阶段流程大体如上图所示。 简单概述: inputFile通过split被逻辑切分为多个split文件,通过Record按行读取内容给 map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集 器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map task都有 一个内存缓冲区,存储着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一 个临时文件的方式存放到磁盘,当整个map task结束后再对磁盘中这个map tas原创 2020-09-25 15:08:07 · 876 阅读 · 0 评论 -
HADOOP浅析
Hadoop 核心介绍 1. HDFS HDFS(Hadoop Distributed File System) 是一个 Apache Software Foundation 项目, 是 Apache Hadoop 项目的一个子项目. Hadoop 非常适于存储大型数据 (比如 TB 和 PB), 其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统. HDFS 对数据文件的访问通过流的方式进行处理, 这意味.原创 2020-09-19 19:49:42 · 138 阅读 · 0 评论