首页 理论教育MapReduce编程过程及其在医药领域中的应用

MapReduce编程过程及其在医药领域中的应用

【摘要】:MapReduce编程过程如图5-25所示。图5-25MapReduce编程过程2.InputFormat文本输入。Sequence File As Binary Input Format用于处理任意二进制的数据类型,并将顺序文件的Key和Value作为二进制对象。Map阶段需要实现Mapper接口,同时继承MapReduceBase,最后再编写map方法。IntSumReducer对整型的value值求和。Map File Output Format是将排序后的Key/Value对写入到一个mapfile文件中。Multiple Sequence File Output Format是将结果输出到多个顺序文件中,其中根据Key/Value对进行分区。

1.MapReduce编程过程

Hadoop 2.0生态系统中YARN下的MapReduce(MRv2)和Hadoop 1.0生态系统中的MapReduce(MRv1)都是基于Goolge的MapReduce思想实现的。虽然二者在框架上有所区别,但是两者的调用API及接口大部分都保持兼容,因此从编程实现方式上保持一致。MapReduce编程过程如图5-25所示。

图5-25 MapReduce编程过程

2.InputFormat

(1)文本输入。Text Input Format以文本文件中的一行作为记录来进行处理,其中,文本输入格式的Key为LongWriteable,Value为Text类型。Key Value Text Inpu tFormat用于有行号和内容的文本文件,其中,行号和文件内容是由分隔符隔开的。N Line Input Format用于对少量文件数据做一些分散的并行处理任务,然后产生汇总输出。Stream Input Format用于处理大型的XML文档。

(2)二进制输入。Sequence File Input Format用于处理二进制键值对的序列,其中Key的类型为IntWriteable,Value类型为Text。Sequence File As Text Input Format用于顺序文件作为流操作的输入,并将Key和Value都转换为Text对象。Sequence File As Binary Input Format用于处理任意二进制的数据类型,并将顺序文件的Key和Value作为二进制对象。

(3)多样式输入。MultipleInputs用于解决数据多样性的问题,可在每个文件上设置InputFormat类型。

(4)数据库输入。DBInputFormat是从关系型数据库中读取数据的一种格式,可将数据传到集群中进行处理。

3.Map

当完成数据读操作之后,就要将分片后的数据作为Map的输入,进行Map阶段。例如,当数据被分片为N时,默认会给N个Map来进行处理。Map阶段需要实现Mapper接口,同时继承MapReduceBase,最后再编写map方法。

IdentityMapper〈K,V〉将输入的〈key,value〉原封不动地输出为中间结果。

InverseMapper〈K,V〉将输入〈key,value〉map为输出〈value,key〉。

RegexMapper〈K〉为每一个匹配的正则表达式生成一个(match,1)键值对。

TokenCountMapper〈K〉当输入值被标记时,生成一个(token,1)键值对。

MultithreadedMapper〈K,V〉多线程执行map方法。

4.Combine/Partition(www.chuimin.cn)

图5-26 Combine/Partition

5.Reduce

IndentityReducer〈K,V〉将输入的〈key,value〉原封不动地输出为结果。

LongSumReducer〈K〉对长整型的value值求和。

IntSumReducer对整型的value值求和。

6.OutputFormat

(1)文本输出。Text Output Format是以一行的形式进行文件写入,Key和Value可以是任意类型,其分隔符默认为Tab符。

(2)二进制输出。Sequence File Output Format是将输出写入到一个顺序文件中,其格式紧凑,而且数据可以被压缩。Sequence File As Binary Output Format是将Key/Value对当作二进制写入到一个顺序文件中。Map File Output Format是将排序后的Key/Value对写入到一个mapfile文件中。

(3)多个输出。Multiple Text Output Format是将结果输出到多个文件中,其中根据Key/Value对进行分区。Multiple Sequence File Output Format是将结果输出到多个顺序文件中,其中根据Key/Value对进行分区。

(4)延迟输出。Lazy Output Format是延迟输出格式,可以保证在第一条记录输出的时候才真正创建文件。

(5)数据库输出。DBO utput Format是向关系型数据库中写入数据的一种格式。