hadoop原理深入学习
仰望星空的我
仰望星空,脚踏实地。
展开
-
Hadoop案例之自定义分片策略解决大量小文件问题
Hadoop案例之自定义分片策略解决大量小文件问题1.默认的分片策略TextInputFormat应该都知道默认的TextInputFormat是一行行的读取文件内容,这对于一个或几个超大型的文件来说并没有什么问题,但是在实验读取大量小文件的时候,性能及其低下。1.1实验过程分别有5个文件夹,每个文件夹下有不同数量(1-2千个)的小文件(10+k大小),总量大概有8k+个文件,使用...转载 2019-03-07 10:12:33 · 458 阅读 · 0 评论 -
自定义分片策略解决大量小文件问题
默认的TextInputFormat应该都知道默认的TextInputFormat是一行行的读取文件内容,这对于一个或几个超大型的文件来说并没有什么问题,但是在实验读取大量小文件的时候,性能及其低下。实验过程分别有5个文件夹,每个文件夹下有不同数量(1-2千个)的小文件(10+k大小),总量大概有8k+个文件,使用CLI命令上传到HDFS就花费了一个多小时。环境为本地电脑安装的伪分布...转载 2019-03-11 10:34:28 · 182 阅读 · 0 评论 -
hadoop提交作业自定义排序和分组
现有数据如下:3 33 23 12 22 11 1要求为:先按第一列从小到大排序,如果第一列相同,按第二列从小到大排序如果是hadoop默认的排序方式,只能比较key,也就是第一列,而value是无法参与排序的这时候就需要用到自定义的排序规则解决思路:自定义数据类型,将原本的key和value都包装进去将这个数据类型当做key,这样就比较key的时候就可以...转载 2019-03-11 10:34:49 · 167 阅读 · 0 评论 -
Hadoop MapReduce处理海量小文件:自定义InputFormat和RecordReader
摘要:一般来说,基于Hadoop的MapReduce框架来处理数据,主要是面向海量大数据,对于这类数据,Hadoop能够使其真正发挥其能力。对于海量小文件,不是说不能使用Hadoop来处理,只不过直接进行处理效率不会高,而且海量的小文件对于HDFS的架构设计来说,会占用NameNode大量的内存来保存文件的元数据(Bookkeeping)。一般来说,基于Hadoop的MapReduce框架来...转载 2019-03-11 10:35:02 · 308 阅读 · 0 评论 -
研究MapReduce源码之实现自定义LineRecordReader完成多行读取文件内容
TextInputFormat是Hadoop默认的数据输入格式,但是它只能一行一行的读记录,如果要读取多行怎么办?很简单 自己写一个输入格式,然后写一个对应的Recordreader就可以了,但是要实现确不是这么简单的首先看看TextInputFormat是怎么实现一行一行读取的大家看一看源码public class TextInputFormat extends FileInpu...转载 2019-03-11 10:35:09 · 373 阅读 · 0 评论 -
hadoop 分片与分块map task和reduce task的理解
分块:Block HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统保证一个块存储在一个datanode上。 把File划分成Block,这个是物理上真真...转载 2019-03-11 10:35:58 · 332 阅读 · 0 评论 -
Hadoop之多行读取数据
一,需求:在map执行前,即setInputFormatClass过程,会进行数据的读入,默认的是每次读入一行数据,进行计算。现在需要改成每次读入两行数据并且合并结果输出。二,思路及解决方法:建议先看看他们的源码,理解思路。我这里是采用的TextInputFormat.class的输入格式。它的key是每一行的偏移位置,value就是它这一行的内容。其中有创建LineRecordR...转载 2019-03-11 10:36:45 · 669 阅读 · 0 评论 -
Hadoop2.6.0学习笔记(六)TextOutputFormat及RecordWriter解析
MapReduce提供了许多默认的输出格式,如TextOutputFormat、KeyValueOutputFormat等。MapReduce中输出文件的个数与Reduce的个数一致,默认情况下有一个Reduce,输出只有一个文件,文件名为part-r-00000,文件内容的行数与map输出中不同key的个数一致。如果有两个Reduce,输出的结果就有两个文件,第一个为part-r-00000,第...转载 2019-03-11 10:35:36 · 1390 阅读 · 0 评论