Hapoop原理及MapReduce原理分析
Hapoop原理
Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,其最核心的设计包括:MapReduce和HDFS。基于 Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。
基于MapReduce计算模型编写分布式并行程序相对简单,程序员的主要工作就是设计实现Map和Reduce类,其它的并行编程中的种种复杂问题,如分布式存储,工作调度,负载平衡,容错处理,网络通信等,均由 MapReduce框架和HDFS文件系统负责处理,程序员完全不用操心。换句话说程序员只需要关心自己的业务逻辑即可,不必关心底层的通信机制等问题,即可编写出复杂高效的并行程序。如果说分布式并行编程的难度足以让普通程序员望而生畏的话,开源的 Hadoop的出现极大的降低了它的门槛。
Mapreduce原理
MapReduce框架的核心步骤主要分两部分:Map和Reduce。当你向MapReduce框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map任务,然后分配到不同的节点上去执行,每一个Map任务处理输入数据中的一部分,当Map任务完成后,它会生成一些中间文件,这些中间文件将会作为Reduce任务的输入数据。Reduce对数据做进一步处理之后,输出最终结果。
MapReduce是Hadoop的核心技术之一,为分布式计算的程序设计提供了良好的编程接口,并且屏蔽了底层通信原理,使得程序员只需关心业务逻辑本事,就可轻易的编写出基于集群的分布式并行程序。从它名字上来看,大致可以看出个两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个子任务并行的执行,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果并输出。
适合用 MapReduce来处理的数据集(或任务)有一个基本要求:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。
Map-Reduce的处理过程主要涉及以下四个部分:
Client进程:用于提交Map-reduce任务job;
JobTracker进程:其为一个Java进程,其main class为JobTracker;
TaskTracker进程:其为一个Java进程,其main class为TaskTracker;
HDFS:Hadoop分布式文件系统,用于在各个进程间共享Job相关的文件;
其中JobTracker进程作为主控,用于调度和管理其它的TaskTracker进程, JobTracker可以运行于集群中任一台计算机上,通常情况下配置JobTracker进程运行在NameNode节点之上。TaskTracker负责执行JobTracker进程分配给的任务,其必须运行于 DataNode 上,即 DataNode 既是数据存储结点,也是计算结点。 JobTracker将Map任务和Reduce任务分发给空闲的TaskTracker,让这些任务并行运行,并负责监控任务的运行情况。如果某一个 TaskTracker出故障了,JobTracker会将其负责的任务转交给另一个空闲的TaskTracker重新运行。
HDFS存储的机制
每个磁盘都有默认的数据块大小,这是磁盘进行读写的基本单位.构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块.该文件系统中的块一般为磁盘块的整数倍.磁盘块一般为512字节.HDFS也有块的概念,默认为64MB(一个map处理的数据大小).HDFS上的文件也被划分为块大小的多个分块,与其他文件系统不同的是,HDFS中小于一个块大小的文件不会占据整个块的空间.
Hapoop原理及MapReduce原理分析的更多相关文章
- MapReduce原理及其主要实现平台分析
原文:http://www.infotech.ac.cn/article/2012/1003-3513-28-2-60.html MapReduce原理及其主要实现平台分析 亢丽芸, 王效岳, 白如江 ...
- hadoop自带例子SecondarySort源码分析MapReduce原理
这里分析MapReduce原理并没用WordCount,目前没用过hadoop也没接触过大数据,感觉,只是感觉,在项目中,如果真的用到了MapReduce那待排序的肯定会更加实用. 先贴上源码 pac ...
- Hadoop学习记录(4)|MapReduce原理|API操作使用
MapReduce概念 MapReduce是一种分布式计算模型,由谷歌提出,主要用于搜索领域,解决海量数据计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce( ...
- 大数据 --> MapReduce原理与设计思想
MapReduce原理与设计思想 简单解释 MapReduce 算法 一个有趣的例子:你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃? MapReduce方法则是: 给在座 ...
- MapReduce原理及操作
注意:本实验是对前述实验的延续,如果直接点开始实验进入则需要按先前学习的方法启动hadoop 部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录 ...
- 云小课|MRS基础原理之MapReduce介绍
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:MapReduce ...
- 04 MapReduce原理介绍
大数据实战(上) # MapReduce原理介绍 大纲: * Mapreduce介绍 * MapReduce2运行原理 * shuffle及排序 定义 * Mapreduce 最早是由googl ...
- 大数据运算模型 MapReduce 原理
大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计 ...
- hadoop笔记之MapReduce原理
MapReduce原理 MapReduce原理 简单来说就是,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce). 例子: 100GB的网站访问日志文件,找出访问次数最多的I ...
随机推荐
- 后台字符串转化成json
function remotecontrol() { var progressbar = $("#progressbar"); $.ajax({ url: myurl, type: ...
- apache与nginx日志文件的区别(转载)
apache与nginx日志文件的区别 转载:http://www.xfcodes.com/apache/log/3270.htm 导读:apache与nginx日志文件的区别,在apache与ngi ...
- struts2+hibernate-jpa+Spring+maven 整合(1)
1.0.0 struts2 与 spring 的整合. 1.1.0 新建maven工程 , 编写pom.xml ,这里只需要简单的添加 一个组件就够了: 在myeclipse 生成的pom.xml 添 ...
- 技术贴 本地代码与svn关联教程 svn upgrade问题解决
背景: 以前从SVN上下载了项目源码,可是SVN抽风了,死活不显示我修改了哪些代码 自己从别人机器上搞来了项目源码,没有svn版本控制,但是svn上面有这些源码 如上两种,我想关联一下,把我本地的代码 ...
- HTML可编辑下拉框
<div style="position:relative;"> <select style="width:120px;" onchang ...
- 如何设置Samza的metrics
参考这个里边对API的调用 http://samza.incubator.apache.org/learn/documentation/0.7.0/container/metrics.html 参考这 ...
- mvc+entity framework database first,生成的model每次更新一个表会更新所有的model
在使用Entity Framework 的Database frist或model first时,直接加attribute到modle类上是太现实也不合理的,因为model类是自动生成的,重新生成后会 ...
- http://blog.csdn.net/majian_1987/article/details/44939911
http://blog.csdn.net/majian_1987/article/details/44939911
- [itint5]字符串匹配
http://www.itint5.com/oj/#15 用hash来做,目前为止做到最好也是case16超时(20w的规模),即使分桶也超时.注意计算hashcode时,'a'要算成1,否则如果'a ...
- Maven中的一点疑惑的地方
我们建立一个Maven项目,其结构如下: