spark(三)从hbase取数据

通过spark获取hbase数据的过程中,遇到了InputFormat。文章主要围绕InputFormat介绍。会牵扯到spark,mapreduce,hbase相关内容

InputFormat

InputFormat是mapreduce提供的数据源格式接口,也就是说,通过该接口可以支持读取各种各样的数据源(文件系统,数据库等),从而进行mapreduce计算。

在有这个概念的基础上分析InputFormat的源码。

public abstract class InputFormat<K, V> { /* * 获取数据的分区信息,每个分区包装成InputSplit,返回一个List<InputSplit> * 注意这里的分区是逻辑分区 * 比如一个文件,一共有100个字符,假如安装每个分区10个字符,那么一共有10个分区 */ public abstract List<InputSplit> getSplits(JobContext context ) throws IOException, InterruptedException; /* * 根据分区信息,获取RecordReader,RecordReader其实就是一个加强版的迭代器,只不过返回的是kv格式的数据 * 可以看到,这里只有一个InputSplit,也就是只有一个分区,也就是说是分区内部的迭代 */ public abstract RecordReader<K,V> createRecordReader(InputSplit split, TaskAttemptContext context ) throws IOException, InterruptedException; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdfs.html