hadoop源码
慵懒的程序猿007
这个作者很懒,什么都没留下…
展开
-
解决小文件问题方式二:Uber模式
目录一、什么是Uber模式二、如何开启Uber模式Hadoop使用中,小文件不仅会导致Namenode内存不足、存储效率低的问题,还会在进行MR计算时,会导致生成过多的切片,需要启动过多的MapTask。每个MapTask的运行都对应一个JVM,那么如此多的JVM开启和关闭,不仅造成了资源的浪费,还降低了计算效率。解决小文件问题方式很多,除了使用CombineTextInputFormat来减少切片数量,还可以使用Uber模式。一、什么是Uber模式Uber模式是Hadoop的一种j原创 2020-05-27 22:29:24 · 458 阅读 · 0 评论 -
解决小文件问题方式一:CombineTextInputFormat 切片合并
目录一、CombineTextInputFormat虚拟切片最大尺寸设置二、多个小文件的切片机制三、总结框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。那么处理小文件就需要CombineTextInputFormat了,CombineTextInputFormat用于小文件过多的场景,它可以将多个小文件从逻辑上规划到一个切片中,这样原创 2020-05-27 22:04:58 · 655 阅读 · 0 评论 -
hadoop源码分析:切片的执行规则
接触Hadoop的小伙伴应该都知道,Split(切片)的数目就是MapReduce运行时将要产生的MapTask数,那么Hadoop是如何进行切片的规则是什么呢?Hadoop的切片功能是在FileInputFormat中实现的,里边定义了切片相关的属性配置和实现切片的getSplit()方法。以下是FileInputFormat类中与切片相关的属性及属性的get、set方法。public abstract class FileInputFormat<K, V> extends Inpu原创 2020-05-27 19:35:30 · 368 阅读 · 0 评论 -
Hadoop源码分析:WritableComparator及排序实现方式
通过MapReduce 中 comparator的获取可以了解到,若Mapper输出的Key为Hadoop自己的类型,则有属于自己的比较器实现排序。若是Key为自定义类型,则需要自定义类型,则需要实现WritableComparable接口。原创 2020-05-26 20:15:52 · 1267 阅读 · 0 评论 -
Hadoop源码分析:Comparator的获取
目录一、MapReduce中的排序二、问题的引入三、源码解析四、总结排序是MapReduce框架中最重要的操作之一。MapTask和ReduceTask均会对数据Key进行排序,该操作是Hadoop的默认行为。不管逻辑是否需要,MapReduce程序中的Key值都会进行排序。一、MapReduce中的排序MapReduce程序中都有哪些排序呢?下图为Mapreduce程序的执行流程图。如图所示,内部排序分为Mapper端的快速排序和归并排序,以及Reducer端的归并排序。原创 2020-05-25 20:41:19 · 398 阅读 · 0 评论