分布式并行计算MapReduce

1.用本身的话阐明Hadoop平台上HDFS和MapReduce的功能、工做原理和工做过程。node

HDFS,MapReduce功能:
分布式文件系统HDFS主要用于大规模数据的分布式存储,而MapReduce则构建在分布式文件系统上,对于存储在分布式文件系统的数据进行分布式计算。shell

 

HDFS的工做原理:
Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,能够运行于廉价的商用服务器上。它所具备的高容错、高可靠性、高可扩展性、高得到性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了不少便利。Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS体系结构中有两类节点,一类是NameNode,又叫"元数据节点";另外一类是DataNode,又叫"数据节点"。这两类节点分别承担Master和Worker具体任务的执行节点。总的设计思想:分而治之——将大文件、大批量文件,分布式存放在大量独立的服务器上,以便于采起分而治之的方式对海量数据进行运算分析。编程


MapReduce的工做原理:
MapReduce采用"分而治之"的思想,把对大规模数据集的操做,分发给一个主节点管理下的各个分节点共同完成,而后经过整合各个节点的中间结果,获得最终结果。服务器


HDFS的工做过程:
客户端要向HDFS写数据,首先要跟namenode通讯以确承认以写文件并得到接收文件block的datanode,而后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其余datanode复制block的副本。网络

MapReduce的工做过程:
执行MapReduce任务的机器角色有两个:一个是JobTracker;另外一个是TaskTracker,JobTracker是用于调度工做的,TaskTracker是用于执行工做的。一个Hadoop集群中只有一台JobTracker。在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工做调度、负载均衡、容错均衡、容错处理以及网络通讯等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。负载均衡

 

2.HDFS上运行MapReduce框架

1)准备文本文件,放在本地/home/hadoop/wc分布式

 

2)编写map函数和reduce函数,在本地运行测试经过函数

 

3)启动Hadoop:HDFS, JobTracker, TaskTrackeroop

 

4)把文本文件上传到hdfs文件系统上 user/hadoop/input 

 

5)streaming的jar文件的路径写入环境变量,让环境变量生效

 

6)创建一个shell脚本文件:streaming接口运行的脚本,名称为run.sh

 

7)source run.sh来执行mapreduce

 

 

8)查看运行结果

相关文章
相关标签/搜索