
hadoop
一过人_
初出茅庐
展开
-
hadoop中关于shuffle机制的源码分析
今天我们来分析一些MR中shuffle阶段的流程源码分析 shuffle阶段处于mapper之后reducer之前,是在mapTask的后半部分和reduceTask的前半部分 一、MapTask中的shuffle阶段 Mapper中调用context.write()方法后 mapper的write方法一直进入到MapTask类中的write方法,然后 默认分区方法是HashPartitioner类中的方法 public int getPartition(K key, V value,原创 2020-07-31 11:01:17 · 1039 阅读 · 4 评论 -
hadoop中MR的切片机制源码分析
上篇关于job提交的源码分析中我们将整体流程大概分析了,本篇重点分析关于其中submit提交过程中对于文件的切片机制进行讨论 在JobSubmitter类中200行左右进行了文件分片的处理,进入其中 再进入主要的writeNewSplits()方法 没有配置的情况下,默认是TextInputFormat,此时调用的是其继承与父类FileInputFormat的getSplits()方法 其中具体获取最大值、最小值的方法如下图 在切片中最重要的就是如下核心代码: 实际读取数据是重写了父类的方法原创 2020-07-29 19:20:45 · 709 阅读 · 0 评论 -
hadoop中MapReduce的job提交流程的源码分析
hadoop中MapReduce的job提交流程的源码分析: 业务代码job对象调用提交方法waitForCompletion(),此时进入源码分析流程 进入到Job类中的此方法,首先判断任务的状态,如果state == JobState.DEFINE ,就执行submit()方法 一、建立连接 connect(); 创建提交Job的代理 new Cluster(getConfiguration()); 判断是本地yarn还是远程 initialize(jobTrackAddr, conf); 二原创 2020-07-28 15:48:35 · 598 阅读 · 0 评论 -
本地运行MR时报NativeIO$POSIX.stat错误
基于hadoop3.0在idea开发本地执行MapReduce时报的POSIX.stat的错误 代码没有任何问题,看错误是关于文件的问题,猜测是不是输入输出路径的问题。此时 输入的路径是一个文件夹,将路径换成一个具体的文件后,运行正常并且结果输出正常 考虑到Linux上hadoop3.1能够输入文件夹直接进行运行,思考是不是3.0的版本还不支持能进行多文件的操作,将3.0版本换成3.1版本后进行操作完美运行,并且文件夹目录下多文件也能正常运行输出正确结果,验证了猜想。 ...原创 2020-07-12 19:17:50 · 830 阅读 · 6 评论