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