HADOOP - QUICK GUIDE-[3]-Mapreduce
HADOOP - QUICK GUIDE-[3]-Mapreduce
原文
https://www.tutorialspoint.com/hadoop/hadoop_quick_guide.htm
利用MapReduce框架(framework)得到可靠的manner在大规模集群中运行我们写的application来处理大数据量数据。
What is MapReduce?
MapReduce是基于java的分布式计算编程model和处理技术。包含2个重要的tasks:Map和Reduce。首先,Map将一个数据集转换为另一个数据集,每个elements分解成tuples。然后,reduce task将map的输出作为输入,合并(combines)这些tuples为更小的tuples集合。
The Algorithm
- 一般MapReduce范式以计算发送到数据存储节点为基础
- MapReduce分为3个执行阶段:map stage,shuffle stage,reduce stage。
- Map stage:输入文件一行行传至mapper function,mapper 处理数据,建立一些更小的数据块(chunks).
- Reduce stage: 包括shuffle stage和reduce stage。Reducer的来自mapper的数据,产生新的数据集输出,这些数据将在HDFS中排序存储。
- Mapreduce job执行期间,Hadoop 将Map和Reduce tasks分发到集群应用servers中。
- Mapreduce framework负责管理数据处理过程中所有细节,如issuing tasks,验证task完成,集群不同节点间的数据拷贝
- 大多数的计算以数据就近原则
- 所有tasks执行完后,集群collects、 reduces结果合并发送给Hadoop server
Inputs and Outputs (Java Perspective)
MapReduce framework 操作\
Terminology
- PayLoad: Applications实现Map和Reduce functions,形成job的核心。
- Mapper:Mapper将input key/value pairs 映射为中间ey/value pair.
- NamedNode:管理HDFS
- DataNode:提供数据
- MasterNode: JobTracker运行在该节点,接收来自client的job
- SlaveNode: Map and Reduce program runs
- JobTracker: Schedules job,跟踪分发jobs到Task tracker.
- Task Tracker: Tracks task,向 JobTracker reports status.
- Job:A program is an execution of a Mapper and Reducer across a dataset.
- Task:An execution of a Mapper or a Reducer on a slice of data.
- Task Attempt - A particular instance of an attempt to execute a task on a SlaveNode.