Hadoop hive spark
hive spark HBASE
input
-》默认从HDFS中读取数据
FileInputFormat
-》将每一行转成keyvalue
-》输出:
<行偏移量,行内容>
key value
0 Hadoop hive spark
17 hive spark HBASE
mapper
-》输入:input输出<LongWritable,Text>
-》map:方法,一行调用一次
针对每一个行进行分割
输出:
key value
Hadoop 1 reduce1
hive 1 reduce2
spark 1 reduce1
hive 1 reduce2
spark 1 reduce1
HBASE 1 reduce1
shuffle:分区,分组,排序
输出:
key value
Hadoop <1>
HBASE <1>
hive <1,1>
spark <1,1>
reduce:
reduce方法:每一条keyvalue调用一次reduce方法
将相同key的值List<value>,进行了相加求和
输入:
key value
Hadoop <1>
HBASE <1>
hive <1,1>
spark <1,1>
输出:
key value
Hadoop 1
HBASE 1
hive 2
spark 2
output:
输出:默认将reduce的输出写入到hdfs
FileOutputFormat
MapReduce开发模板
POJO:没有继承类也没有实现任何接口
不继承也不实现
继承及实现
extends Configured implements Tool
官方推荐
不继承只实现
implements Tool
企业中用的比较多,一般Configured需要自定义一些配置,
自定义数据类型
基本数据类型
IntWritable,
LongWritable
Text
NullWritable
和java类型的转换
int –>set—> IntWritable
IntWritable –>get—>int
需求:
Map
输入:
输出
key value
hive 0 1
Hadoop 0 1
spark 0 1
HBASE 0 1
hive 0 1
spark 0 1
reduce
输入:
Hadoop 0 <1>
HBASE 0 <1>
hive 0 <1,1>
spark 0 <1,1>
输出
Hadoop 1 1
HBASE 1 1
hive 2 2
spark 2 2
<key,value>
-》implements WritableComparable
-》定义成员变量,及get,set
-》序列化和反序列,顺序必须一致
-》compareTo
-》构造方法,带参数和无参
-》setAllValue
-》toString