hadoop-MapReduce分布式计算框架
计算框架:
MapReduce:主要用于离线计算
Storm:流式计算框架,更适合做实时计算
stack:内存计算框架,快速计算
MapReduce设计理念:
--何为分布式计算
--移动计算,而不是移动数据
4个步骤:
1.Splitting
2.Mapping:Map步骤有可能有多个Map task线程并发同时执行
3.Shuffing:合并和排序
4.Reducing
Hadoop计算框架Shuffler
在mapper和reducer中间的一个步骤
可以把mapper的输出按照某种key值重新切分和组合成n份,把key值符合某种范围的输出送到特定的reducer那里去处理
可以简化reducer过程

partition:分区
如果不进行分区,会有默认的分区 “哈希模运算”
1.获得 哈希值 -->得到一个整数(int) --> 模reduce的个数得到一个结果
分区 是为了把map的输出数据进行 负载均衡 或解决数据倾斜问题
map中不会出现数据倾斜问题,map的输入数据split(片段)事实上来源于dataNode的block块
默认的partition有可能产生数据倾斜问题
如果有 数据倾斜 问题,需要更改和优化partition
sort:排序
程序可以控制的地方
partition,sort(比较算法,默认按照字典排序(ASCII大小)),combiner

在spill to desk 时候出现 sort和combiner
Combiner 有可能不存在

MapReduce 的 Split 大小
-- max.split(100M)
-- min.split(10M)
-- block(64M)
-- max(min.split,min(max.split,block))
MapReduce 的架构
一主多从架构
主JobTracker:
负责调度分配每一个子任务task运行与TaskTracker上,如果发现有失败的task就重新分配其任务到其他节点.每一个hadoop集群中只有一个JobTracker.一般它运行在Master节点上
从TaskTracker:
TaskTracker主动与JobTracker通信,接受作业,并负责执行每一个任务,为了减少网络带宽TaskTracker最好运行咋HDFS的DataNode上
搭建:
1.指定JobTracker所在的机器
conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.201:</value>
</property>
</configuration>
2.如果TaskTracker配置在DataNode上,默认不需要配置
3.同步配置文件
[root@bogon conf]# scp ./mapred-site.xml root@192.168.1.202:~/hadoop-1.2./conf/
[root@bogon conf]# scp ./mapred-site.xml root@192.168.1.203:~/hadoop-1.2./conf/
4.启动
[root@bogon bin]# ./start-all.sh
5.使用 jps 查看启动
192.168.1.201
[root@bogon bin]# jps
Jps
JobTracker
NameNode
[root@bogon bin]#
192.168.1.202
[root@localhost ~]# jps
DataNode
SecondaryNameNode
Jps
TaskTracker
[root@localhost ~]#
192.168.1.203
[root@localhost ~]# jps
TaskTracker
Jps
DataNode
[root@localhost ~]#
使用 http://192.168.1.201:50030/ 查看
生成 eclipse 插件
hadoop-1.2.1\src\contrib\eclipse-plugin 在eclipse中编译成jar
将编译好的jar放入到eclipse的plugin中
eclipse版本不能太低也不能太高 使用4.4
hadoop-MapReduce分布式计算框架的更多相关文章
- 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)
大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四): ...
- Hadoop 三剑客之 —— 分布式计算框架 MapReduce
一.MapReduce概述 二.MapReduce编程模型简述 三.combiner & partitioner 四.MapReduce词频统计案例 4.1 项目简介 ...
- Hadoop 学习之路(三)—— 分布式计算框架 MapReduce
一.MapReduce概述 Hadoop MapReduce是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到Hadoop集群上用于并行处理大规模的数据集. MapReduce作业通 ...
- Hadoop 系列(三)—— 分布式计算框架 MapReduce
一.MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集. MapReduce ...
- 分布式计算框架学习笔记--hadoop工作原理
(hadoop安装方法:http://blog.csdn.net/wangjia55/article/details/53160679这里不再累述) hadoop是针对大数据设计的一个计算架构.如果你 ...
- (第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值
摘要: 通过前面的学习,大家已经了解了HDFS文件系统.有了数据,下一步就要分析计算这些数据,产生价值.接下来我们介绍Mapreduce计算框架,学习数据是怎样被利用的. 博主福利 给大家赠送一套ha ...
- 【Big Data - Hadoop - MapReduce】hadoop 学习笔记:MapReduce框架详解
开始聊MapReduce,MapReduce是Hadoop的计算框架,我学Hadoop是从Hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能 ...
- Hadoop mapreduce框架简介
传统hadoop MapReduce架构(老架构) 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 1.首先用户程序 (JobClient) 提交了一个 job,job ...
- 下一代Apache Hadoop MapReduce框架的架构
背景 随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修. 需求 当我们对Hadoop MapReduc ...
- 2_分布式计算框架MapReduce
一.mr介绍 1.MapReduce设计理念是移动计算而不是移动数据,就是把分析计算的程序,分别拷贝一份到不同的机器上,而不是移动数据. 2.计算框架有很多,不是谁替换谁的问题,是谁更适合的问题.mr ...
随机推荐
- JavaScript Math 对象
JavaScript Math 对象 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...
- Entity Framework连接Mysql数据库并生成Model和DAL层
Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架.相比于LINQ TO SQL,EF框架具有很明显的优势: EF框架 ...
- vs2013怎么打开vs2010的解决方案
1.直接用vs2013打开解决方案的sln文件,vs会自动进行转换的2.或者你用记事本的方式打开sln文件 将版本号改一下Microsoft Visual Studio Solution File, ...
- hadoop 2.6伪分布安装
hadoop 2.6的“伪”分式安装与“全”分式安装相比,大部分操作是相同的,主要区别在于不用配置slaves文件,而且其它xxx-core.xml里的参数很多也可以省略,下面是几个关键的配置: (安 ...
- VMware Fusion DHCP方式下如何指定虚拟机IP地址
默认情况下,vmware fusion中的虚拟机,网卡设置成dhcp(动态分配 )时,会分配一个IP地址,但这个IP通常很难记,如果我们想为某台虚拟机挑一个好记的IP地址,可以按如下步骤操作: 命令行 ...
- jboss上的soap web service开发示例
以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...
- FineUI小技巧(4)关闭窗体那些事
前言 FineUI中的Window控件常用作选择.新增或编辑内容.而关闭Window控件却有很多技巧,了解这些技巧有助于项目的快速开发. 如何关闭Window控件 第一个问题就是如何关闭Window控 ...
- 翻译qmake文档(三) Creating Project Files
翻译qmake文档 目录 原英文文档:http://qt-project.org/doc/qt-5/qmake-project-files.html 创建项目文件 项目文件包含qmake构建你 ...
- C# 7.0 新特性2: 本地方法
本文参考Roslyn项目中的Issue:#259. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...
- Eclipse自动补全功能管理
#这种方法只适用于Eclipse Classic版本(这个版本带有插件的源码) 在使用Eclispe的过程,感觉自动补全做的不好,没有VS的强大.下面说两个增强自动补全的方法: 1.增加Eclipse ...