分布式并行计算MapReduce

Posted hzj111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式并行计算MapReduce相关的知识,希望对你有一定的参考价值。

1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作过程。

HDFS的功能:元数据、检查点、DataNode功能

HDFS的工作原理:

数据存取 - HDFS架构:

Master / Slave(主从结构) - 节点可以理解为物理机器

  • 主节点,只有一个: Namenode
  • 从节点,有很多个: Datanodes

1)   分布式文件系统,它所管理的文件是被切块存储在若干台datanode服务器上.;

2)   hdfs提供了一个统一的目录树来定位hdfs中的文件,客户端访问文件时只要指定目录树的路径即可,不用关心文件的具体物理位置;

3)   每一个文件的每一个切块,在hdfs集群中都可以保存多个备份,在hdfs-site.xml中,dfs.replication的value的数量就是备份的数量;

4)   hdfs中有一个关键进程服务进程:namenode,它维护了一个hdfs的目录树及hdfs目录结构与文件真实存储位置的映射关系(元数据).而datanode服务进程专门负责接收和管理"文件块";

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

 

(2)MapReduce的功能:Hbase和Hdfs之间数据相互转换;排序;Top N;从hbase中读取数据统计并在hdfs中降序输出Top 3;去重(Distinct)、计数(Count)、最大值(Max)、求和(Sum)、平均值(Avg);(多个job串行处理计算平均值;分区(Partition);Pv、Uv;倒排索引(Inverted Index);join;

MapReduce的工作原理: 

技术图片

 

MR编程模型原理:利用一个输入的key-value对集合来产生一个输出的key-value对集合。

MapReduce的工作过程:MR框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的不同的从节点上。主节点监视它们的执行情况,并重新执行之前失败的任务。从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接受到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。JobTracker可以运行于集群中的任意一台计算机上。TaskTracker负责执行任务,它必须运行在DataNode上,DataNode既是数据存储节点,也是计算节点。JobTracker将map任务和reduce任务分发给空闲的TaskTracker,这些任务并行运行,并监控任务运行的情况。如果JobTracker出了故障,JobTracker会把任务转交给另一个空闲的TaskTracker重新运行。

2.HDFS上运行MapReduce

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

技术图片

 

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

技术图片

 技术图片

 

3)启动Hadoop:HDFS, JobTracker, TaskTracker

 技术图片

 

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

技术图片

 

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

技术图片

 

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

技术图片

 

7)source run.sh来执行mapreduce

技术图片

 

8)查看运行结果

技术图片

技术图片

 

以上是关于分布式并行计算MapReduce的主要内容,如果未能解决你的问题,请参考以下文章

分布式计算框架综述

处理海量数据的模式MapReduce,大规模数据集的并行运算

Hadoop平台基本组成

凌达干货 | MapReduce介绍

MapReduce并行编程模型

MapReduce 分布式计算系统