Hadoop数据如何分片.pdf
文本预览下载声明
青灯系列(1001) Hadoop数据如何分片
第 1 页 共 10 页
Hadoop数据如何分片
Hadoop版本:1.0.3
作者:青灯
E-mail:1350540904@
青灯版本 本文版本 版本备注 完成时间
1001 1.0 第一版 2012.9.25
青灯系列(1001) Hadoop数据如何分片
第 2 页 共 10 页
目录
1 前言 ........................................................................................................................... 3
2 INPUTFORMAT 的基本思想 ................................................................................. 3
3 数据分片的一个详细例子 ....................................................................................... 3
3.1 INPUTFORMAT类 ................................................................................................ 3
3.2 INPUTSPLIT类 ..................................................................................................... 5
3.3 RECORDREADER类 ............................................................................................. 6
3.4 写一个 MAPPER类来使用这个自定义的 INPUTFORMAT ............................... 8
3.5 写一个 MAPREDUCER类测试下 ....................................................................... 8
3.6 测试结果 ........................................................................................................... 10
青灯系列(1001) Hadoop数据如何分片
第 3 页 共 10 页
1 前言
青灯照壁人初睡,冷雨敲窗被未温。
码农这一行,本就已经这样凄凄惨惨戚戚。还要相互之间设置技术壁垒,不
是更加自虐么?
希望我的青灯系列能够激起一丁点的效果,让技术的交流能够更畅通一些。
编辑这个青灯系列,还有两点私心:其一,希望逼着自己整理思路;其二,
更希望朋友们对青灯系列中,错误纰漏之处给予指正。不甚感激!
2 InputFormat的基本思想
Hadoop 使用这个抽象类来将输入的数据逻辑分成多个部分。并提供了一个
读取各个逻辑分片数据的 RecordReader对象。
InputFormat 有两个方法:
(1) ListInputSplit getSplits(JobContext context)
负责将一个大数据逻辑分成多片。比如数据库表有 100 条数据,按照主
键 ID升序存储。假设每 20条分成一片,那么这个 List 的大小就是 5,然后
每个 InputSplit 记录两个参数,第一个为这个分片的起始 ID,第二个为这个
分片数据的大小,这里是 20。很明显 InputSplit 并没有真正存储数据。只是
提供了一个如何将数据分片的方法
(2)RecordReaderK,V createR
显示全部