Hadoop学习之MapReduce

结构介绍

  • MapReduce是Hadoop提供的一种处理海量数据的并行编程模型和计算框架,用于对大规模的数据进行并行计算。主要由ResourceManager和NodeManager两类节点构成。
  • ResourceManager主要负责集群资源管理,NodeManager负责节点的资源管理。
  • 当运行MapReduce任务的时候,后产生ApplicationMaster和Container,其中ApplicationMaster负责向ResourceManager节点进行资源的申请并控制任务的执行,Container是最基本的资源单位。MapReduce的Map和Reduce均是其之上进行运行的。

MapReduce编程思想

  • MapReduce采用“分而治之”的思想。对大规模的数据集的操作分配给各子节点进行操作,然后通过整合子节点的中间结果得到最终结果。即“任务的分解和结果的汇总”。
  • Hadoop将这个工作高度抽象成为两个函数,分别为Map和Reduce。Map负责将任务分解为多个任务。Reduce负责将多个Map任务的中间结果合并为最终结果。在此过程中的其他步骤均由Hadoop的MapReduce框架自行负责处理,包括工作调度、任务分配和节点间通信等。

Hadoop数据类型

  • 继承接口Writable实现其方法write()和readFields(),以便该数据能被序列化后完成网络传输或文件输入/输出。
  • 如果该数据需要作为主键key使用或者需要比较值大小时,则需要实现WritableComparable接口,实现其方法write(),readFields(),CompareTo()。
类型说明
BooleanWritable标准布尔型数值
ByteWritable单字节数值
DoubleWritable双字节数值
FloatWritable浮点数
IntWritable整型数
LongWritable长整型数
Text使用UTF8格式存储的文本
NullWritable当<key, value>中的key或value为空时使用

以上为Hadoop中关于MapReduce的一些介绍,具体正在学习ing...

相关推荐