摘要: 对ReduceTask最宏观的理解也应该包括三个阶段:数据输入(input),数据计算(reduce),数据输出(output) 下边代码是大数据开发hello world Reduce方法: public class WcReducer extends Reducer<Text, IntWrita 阅读全文
posted @ 2021-06-11 15:41 Simon-Lau 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Dream car 镇楼 ~ ! 接上一节Input环节,接下来分析 output环节。代码在runNewMapper()方法中: private <INKEY,INVALUE,OUTKEY,OUTVALUE> void runNewMapper(final JobConf job,final Ta 阅读全文
posted @ 2021-06-11 10:33 Simon-Lau 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 备忘 Cli: 1、会根据每次计算的数据,咨询NN元数据(block)计算:split得到一个切片清单; 这样map的数量就有了。Split时逻辑的,block是物理的。block身上有(offset,location),split和block之间有映射关系。 结果:split包含偏移量,以及spl 阅读全文
posted @ 2021-06-10 18:43 Simon-Lau 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 不得不说阅读源码的过程,极其痛苦 。Dream Car 镇楼 ~ ! 虽说整个MapReduce过程也就只有Map阶段和Reduce阶段,但是仔细想想,在Map阶段要做哪些事情?这一阶段具体应该包含数据输入(input),数据计算(map),数据输出(output),这三个步骤的划分是非常符合思维习 阅读全文
posted @ 2021-06-10 18:30 Simon-Lau 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 计算向数据移动 MR程序并不会在客户端执行任何的计算操作,它是为计算工作做好准备,例如计算出切片信息,直接影响到Map任务的并行度。 在Driver中提交任务时,会写到这样的语句: boolean result = job.waitForCompletion(true); 进入到waitForCom 阅读全文
posted @ 2021-06-09 16:24 Simon-Lau 阅读(263) 评论(0) 推荐(1) 编辑
摘要: 0、关于HDFS的角色 在HDFS集群中,根据HDFS的组织架构,可以看出主要的角色包括Client、NameNode、DataNode、SecondaryNameNode ~ Client:客户端 文件切分:文件上传至HDFS集群时,Client将文件切分成一个个Block上传; 与NameNod 阅读全文
posted @ 2021-06-02 10:16 Simon-Lau 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 线程的实现原理 0、 概述 操作系统引入线程之后,进程就变成了分配资源的基本单位,线程是独立调度的基本单位。 引入线程的意义: 未引入线程之前,进程是分配资源和独立调度的基本单位,因而在创建、撤销、切换中,系统必须为之付出较大的时空开销。正因如此,在系统中所设置的进程,其数目不宜过多,进程切换的频率 阅读全文
posted @ 2021-05-28 14:12 Simon-Lau 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 1、从主方法入手 SpringBoot应用常规的main方法如下: @SpringBootApplication public class SpringBootDemoApplication { public static void main(String[] args) { SpringAppli 阅读全文
posted @ 2020-12-30 22:10 Simon-Lau 阅读(281) 评论(0) 推荐(0) 编辑
摘要: GC算法(计数/复制/标记清除/标记整理)是内存回收的方法论,垃圾收集器是算法的具体落地实现。垃圾回收发生在堆内存和方法区。 值得注意的是,目前为止还没一完美的垃圾收集器,更加没有万能的收集器,只能针对具体的应用最合适的收集器,进行分代收集。 本篇笔记记录了四种类型的垃圾收集器。 1、Serial: 阅读全文
posted @ 2020-01-21 21:19 Simon-Lau 阅读(210) 评论(0) 推荐(1) 编辑
摘要: 1、java.lang.StackOverflowError 报这个错误一般是由于方法深层次的调用,默认的线程栈空间大小一般与具体的硬件平台有关。栈内存为线程私有的空间,每个线程都会创建私有的栈内存。栈空间内存设置过大,创建线程数量较多时会出现栈内存溢出StackOverflowError。同时,栈 阅读全文
posted @ 2020-01-21 15:31 Simon-Lau 阅读(4528) 评论(0) 推荐(2) 编辑