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