hadoop笔记1
hdfs mapreduce简介
Hadoop组件
结构组成
Hadoop由2个主要的主件组成:hdfs,mapreduce
1) Hdfs
分布式文件系统,按照组成分为
masterNode: nameNode,JobTracker,SecondaryNameNode
slaveNode: DataNode,TaskTracker
nameNode:文件在各节点分块对应表。
SecondaryNameNode:文件分布快照,是NameNode的补充节点。
DataNode:数据的io操作。
taskTracker:各节点的操作监视节点
2) Mapreduce
设计为hdfs文件的计算组件。
分为:mapper
reducer
Mapreduce执行步骤
Mapper负责从hdfs文件系统读取信息,然后输出给reducer,reducer在输出到hdfs文件系统。
输入输出格式:
Map(k1,v1)àlist(k2,v2)
Reduce(k2,list(v2))-àlist(k3,v3)
Hdfs--àInput split--àmap--àcombiner--àshuffling---àreduce--àhdfs
其中shuffling中有分区的动作(partitioner)
Input split中包含了
文件分块:一个文件分割在一个机器节点上的多个块,或者不同机器节点上。
inputFormat: 文件分割到读取文件以什么格式给mapper.
TextInputFormat
KeyValueTextInputFormat
默认实现为FileInputFormat的子类,其中有2个方法
getSplits
getRecordReader此方法就是决定传什么样的值(RecordReader) 给map方法。
Reduc后调用outputformat来写入文件
默认是textoutputformat
都是FileoutputFormat子类。