摘要: @ 1. 准备阶段 运行Job.waitForCompletion(),先使用JobSubmitter提交Job,在提交之前,会在Job的作业目录中生成以下文件: job.split:当前Job的切片信息,有几个切片对象 job.splitmetainfo:切片对象的属性信息 job.xml:job 阅读全文
posted @ 2020-07-17 23:35 孙晨c 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 虽然切片数越多,启动的maptask就越多,并行运行执行效率越高。但凡事都有个度,万一切片过多,也会影响执行效率 @ 执行流程 Job-->MRAppMaster-->RM-->调度队列-->NM-->Container-->MapTask 可以看见,从job提交到执行maptask,中间还会经历很 阅读全文
posted @ 2020-07-17 17:35 孙晨c 阅读(305) 评论(0) 推荐(0) 编辑
摘要: @ 片大小的计算 long splitSize = computeSplitSize(blockSize, minSize, maxSize); protected long computeSplitSize(long blockSize, long minSize, long maxSize) { 阅读全文
posted @ 2020-07-17 16:32 孙晨c 阅读(248) 评论(0) 推荐(0) 编辑
摘要: ①获取当前输入目录中所有的文件 ②以文件为单位切片,如果文件为空文件,默认创建一个空的切片 ③如果文件不为空,尝试判断文件是否可切(不是压缩文件,都可切) ④如果文件不可切,整个文件作为1片 ⑤如果文件可切,先获取片大小(默认等于块大小),循环判断 待切部分/ 片大小 > 1.1,如果大于先切去一片 阅读全文
posted @ 2020-07-17 16:24 孙晨c 阅读(278) 评论(0) 推荐(1) 编辑
摘要: 有一文件,如图所示 每行第一个字段为名字,后面的则为该人的一些信息,所以此时的输入格式应该是以每一行的名字为Key,每一行的其他信息为Value。 KeyValueTextInputFormat 作用: 针对文本文件!使用分割字符,分隔符前的为Key,分隔符后的为value,所以这种输入格式就是将每 阅读全文
posted @ 2020-07-17 16:19 孙晨c 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 有两个文件: NlineInputFormat 切片策略: 读取配置文件中的参数mapreduce.input.lineinputformat.linespermap,默认为1,以文件为单位,切片每此参数行作为1片! 既然有参数,那就可以修改,设置为每N行切为一片: Configuration co 阅读全文
posted @ 2020-07-17 16:03 孙晨c 阅读(493) 评论(0) 推荐(0) 编辑