结构介绍
- 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...