1、MR是一种用于数据处理的编程模型,MapReduce和关系型数据库之间的区别是:
MapReduce |
关系型数据库 |
一次写入多次读写 |
多次读写 |
PB |
GB |
非结构化 |
结构化 |
2、MR具有"数据本地化"功能,即尝试在计算节点本地存储数据,通常MR处理的结果会送到Reduce继续处理得到最终的结果,
Reduce输出结果为了长久稳定保存,一般存储在HDFS上,其输入往往来自于所有maper输出
3、Hadoop把作业分成若干小任务来工作,其中包括:Map任务和Reduce任务。
jobtracker和tasktracker共同协调来完成整个作业的调度,jobtracker主要用来控制、分配在tasktracker的调度,tasktracker用于运行任务并将运行进度报告返回给jobtracker。
4、Hadoop会将输入数据分成小数据块发到MR(简称分片),如果有多个reducer,maper任务会对其输出进行分区,为每个reducer任务创建一个分区,分区包含许多键,每个键都在同一个分区中
5、hadoop允许在map和reduce之间建立combiner,是一个优化方法
6、hadoop流提供一个API来运行MR,其允许任何只要能够编写标准输入并给出标准输出的语言,因为他使用unix标准流作为与程序之间的借口。
7、hadoop管道是hadoop mapreduce的c++接口的代称,管道使用sockets作为tasktracker与c++编写的map或者reduce函数的进程之间的管道。