1.自定义InputFormat–数据分类输出 需求:小文件的合并 分析: -在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS -在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并 -在MapReduce处理时,可采用CombineFileIn
分类:
其他好文 时间:
2019-01-13 14:23:38
阅读次数:
167
一、InputSplit MapReduce框架调用job.setINputFormatClass定义的InputFormat读取数据 InputFormat接口里包括两个方法:getSplits()和createRecordReader(),这两个方法分别用来定义输入分片和读取分片的方法。 1、计 ...
分类:
其他好文 时间:
2018-12-25 13:16:44
阅读次数:
136
在执行一个Job的时候,Hadoop会将输入数据划分成N个Split,然后启动相应的N个Map程序来分别处理它们。数据如何划分?Split如何调度(如何决定处理Split的Map程序应该运行在哪台TaskTracker机器上)?划分后的数据又如何读取?这就是本文所要讨论的问题。先从一张经典的MapR ...
分类:
其他好文 时间:
2018-08-23 11:24:06
阅读次数:
189
俗称:洗牌 InputFormat-->InputSplit-->map函数(mapper)-->环形缓冲区-->partition(分区)-->sort(排序)-->spill to disk(溢写至磁盘)-->merge(合并)-->存储在maptask节点的本地(本地存储)-->fetch(通 ...
分类:
其他好文 时间:
2018-07-28 13:44:28
阅读次数:
176
/** Splits files returned by {@link #listStatus(JobConf)} when * they're too big.*/ public InputSplit[] getSplits(JobConf job, int numSplits) throws I... ...
分类:
其他好文 时间:
2018-07-21 17:26:33
阅读次数:
179
1. 自定义inputFormat 1.1.需求: 无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件,此时就需要有相应解决方案; 1.2.分析: 小文件的优化无非以下几种方式: 1、在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS; 2、在业务 ...
分类:
其他好文 时间:
2018-07-03 18:22:12
阅读次数:
164
1.RDD的创建 1.1 从一个本地的Scala集合创建 1.2 从一个外部的存储系统中创建 这里外部系统,指的是任何Hadoop(InputFormat)支持的存储系统.比如本地文本文件,HDFS,HBase,S3等等 1.2.1 textFile 1.2.2 wholeTextFiles who ...
分类:
其他好文 时间:
2018-06-29 23:31:07
阅读次数:
195
1、MapTask机制: (1)Read 阶段:客户端获取输入数据信息,根据配置文件形成一个任务分配规划(形成InputSplit),然后submit()方法提交job。AppMaster通过用户编写的 RecordReader,从InputSplit中用InputFormat(分为TextInpu ...
分类:
其他好文 时间:
2018-06-22 16:33:34
阅读次数:
226
1. InputFormat接口 InputFormat接口包含了两个抽象方法:getSplits()和creatRecordReader()。InputFormat决定了Hadoop如何对文件进行分片和接收, 它能够从一个 job 中得到一个 split 集合(InputSplit[]),然后再为 ...
分类:
其他好文 时间:
2018-03-31 12:01:39
阅读次数:
199
step1 input InputFormat读取数据,将数据转换成<key ,value>对,设置FileInputFormat,默认是文本格式(TextInputFormat) step2 map map<KEYIN, VALUEIN, KEYOUT, VALUEOUT> 默认情况下KEYIN: ...
分类:
其他好文 时间:
2017-11-03 12:59:41
阅读次数:
147