Hadoop note

hadoop笔记

###mapper reducer的由来。 计算文本单词出现的个数,分开计算,分开合成。

###组件

  • nameNode。管理数据相关部分。
  • dataNode。管理slave里存放的数据。
  • secondaryNameNode。nameNode的备份。
  • jobNode。管理工作。与taskNode通讯。
  • taskNode。根据储存在同一机子上的数据,进行计算!并与jobNode通讯。心跳机制!

###基础 主从分布模式! 数据以key-value为基础,存在hdfs的文件系统上。保持冗余,数据分散存储!

###map reduce

mapper。reducer。两步!

  • 将hdfs的key,value转换成分析字段k1, v1. 以及分析结果的键值对k2,v2;经过mapper后,就形成了list<k2,list(v2)>.
  • reducer再根据mapper的结果,产生需要的结果!

###具体实现: ####文件系统 hdfs文件系统!和普通文件系统使用起来很像! ####hadoop数据类型。 value是writable,key是writableComparable。都必须支持序列化!

####主要的类

  • mapper。实现map方法!
  • reducer。实现reduce方法!
  • partitioner。将key映射!
  • combiner。优化合并。
  • inputformat。inputsplit与recordreader:提供文件分片(inputformat),将文件分片映射成键值对(recordreader)。
  • outputformat。

####对数据流的理解 输入、中间结果、输出的键值对对k1,v1;k2,v2;k3,v3.

  • inputformat分inputsplit
  • recordreader将inpitsplit分解成k1,v1
  • mapper将k1,v1转换成k2,v2
  • reducer将k2,v2转换成k3,v3。

####其它

  • streaming 可以用脚本语言而不是java库,编写简单,短小的mapreduce程序!
  • mapper reducer可以多层链接!