Hadoop随笔

Mapreduce 处理的数据必须具备的特点:

--待处理的数据可以分解成许多小的数据集,而且每个数据集都可以完全并行的处理

计算模型的核心部分是map和Reduce函数:

--这两个函数的功能由用户根据需要自己实现,只要能够按照用户自定义的规则,

将输入的键值对转换成另一批键值对输出即可

在map阶段,MapReduce框架将任务的输入数据分割成固定大小的片段,每个片段进一步分解成一批的键值对

Hadoop会为每个片段分map任务,把键值对作为输入,得到计算的中间结果<key,value>,然后再根据key进行

排序,将key值相同的value放到形成的一个列表中,组成一个元组<key,list(v2)>,最后再根据key值得规范,

将这些元组进行分组,对应不同的Reduce任务

在Reduce阶段,reduce把从不同Mapper接受来的数据进行整合排序,然后调用用户自定义的reduce函数对输入

的<key,list(v2)>进行计算,得到<key,value>输出到Hdfs上

1.任务的调度与执行

--MapReduce任务由JobTracker和TaskTracker两个节点控制完成,jobTracker主要是调度和管理Tasktarcker

,Map和Reduce任务是由JobTracker分配给空闲的TaskTracker,由TaskTracker复制这些任务的并行执行。TaskTracker

必须运行在DataNode上,所有DataNode是数据的存储节点也是数据的计算节点,JobTracker负责监控TaskTracker的任务

的运行情况,如果TaskTracker任务失败,Job会将任务重新分配给别的空闲的TaskTracker,如果JobTracker失败任务将

直接失败

2.本地计算

MapReduce框架尽最大努力保证在存储节点上执行计算任务,减少数据在网络中的传输

3.Shuffle过程

MapReduce会将Mapper的输出结果按照key值分成R份(R是预先定义的Reduce个数),划分时常使用hash函数例如,

Hash(key) mod R,这样可以保证某一个范围内的key一定由某个Reduce来处理,从而简化Redcue过程

4.合并Mapper的输出

5.读取中间结果

在完成Combine和Shuffle后,Mapper的输出结果将直接被写到本地磁盘,然后会告诉JobTracker中间结果的文件

位置,再有JobTracker告诉Reduce到哪个DataNode去读取中间结果

6.任务管道

Hadoop随笔,布布扣,bubuko.com

时间: 2024-10-12 22:52:36

Hadoop随笔的相关文章

Hadoop随笔(二):Hadoop V1到Hadoop V2的主要变化

一.消失的概念与新鲜的名词 Hadoop V2相对于Hadoop V1的变化主要在于资源管理和任务调度,计算模型仍然保持map/reduce的模型.资源管理和任务调度的变化导致了工作流程的变化,一些概念消失而一些概念又出现. 1.JobTrack与TaskTrack JobTrack和TaskTrack在Hadoop旧版本(Hadoop0.x及Hadoop1.x)中是非常重要的概念.JobTrack对系统中的所有Job进行统一的管理,同时为Job分配相应的TaskTrack,还需要与所有的Tas

【合集】Hadoop 合集

0. 说明 Hadoop 随笔的目录 1. HDFS 主要内容: [HDFS_1] HDFS 的概念和特性 [HDFS_2] HDFS 的 Shell 操作 [HDFS_3] HDFS 工作机制 [HDFS_4] HDFS 的 Java 应用开发 附加内容: [HDFS_add_1] HDFS 启动过程分析 [HDFS_add_2] SecondaryNameNode 滚动 NameNode 数据流程 [HDFS_add_3] HDFS 机架感知 遇到问题及解决方案 [爬坑]DataNode 无

Hadoop之——HDFS随笔

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45896307 1.对hdfs的操作方式:hadoop fs xxx hadoop fs -ls  /    查看hdfs的根目录下的内容的 hadoop fs -lsr /    递归查看hdfs的根目录下的内容的 hadoop fs -mkdir /d1    在hdfs上创建文件夹d1 hadoop fs -put <linux source> <hdfs desti

hadoop实战随笔_170814

group By操作 map端部分聚合.并不是所有的聚合操作都需要在reduce部分进行,很多聚合操作都可以先在map端进行部分聚合,然后在reduce端得出最终结果. hive.map.aggr=true,用于设定是否在map端进行聚合,默认为True.hive.groupby.mapaggr.checkinterval=100000,用于设定在map端进行聚合操作的条目数. 有数据倾斜(数据分布不均匀)时进行负载均衡.此处需要设定hive.groupby.skewindata,当选项设定为t

HADOOP报错,随笔

1.新版本2.4.1中,profile/hadoop-env.sh中均己设置 JAVA_HOME,  java -version也正常. 启动时报错: [[email protected] ~]# start-all.sh Starting namenodes on [] localhost: Error: JAVA_HOME is not set and could not be found. localhost: Error: JAVA_HOME is not set and could n

Hadoop基础学习

一.Apache Hadoop 历史发展 Apache Hadoop 的雏形开始于2002年的 Apache 的 Nutch.Nutch 是一个开源 Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和 Web 爬虫. 随后在 2003 年 Google 发表了一篇技术学术论文关于 Google 文件系统(GFS).GFS 也就是 Google File System,是 Google 公司为了存储海量搜索数据而设计的专用文件系统. 2004年 Nutch 创始

了解Hadoop

Hadoop简介: Hadoop是Apache软件基金会旗下的一份开源的分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构.Hadoop是基于Java语言开发的(c  c++ 都可以在Hadoop上开发),具有很好的跨平台特性,并且可以部署在廉价的计算机集群中.Hadoop的核心是分布式文件系统HDFS(分布式文件存储)和 MapReduce(分布式文件处理).Hadoop被公认为行业大数据的标本开源开发工具,在分布式环境下提供了海量数据的处理能力.几乎所有主流的厂商都围绕Hadoop

搭建基于MyEclipse的Hadoop开发环境

前面我们已经搭建了一个伪分布模式的Hadoop运行环境. 我们绝大多数都习惯在Eclipse或MyEclipse中做Java开发,本次随笔我就教大家如何搭建一个基于MyEclipse IDE的Hadoop开发环境. 闲话少说,走起! 第一步 安装MyEclipse的Hadoop插件 1 打开MyEclipse,查看是否已经安装过 window  ->  preferences 没有显示Hadoop Map/Reduce,所以说明是MyEclipse是没有安装过Eclipse的插件. 首先,确认你

centos7.2 64位 hadoop2.7.3 安装 hawq 2.10 随笔啊随笔而已。

在谷歌趋势上看,spark全球火,而hawq除了中国其他地方也比较火,尤其德国芬兰hawq火.有意思的是hawq的开发团队的老大是华人,是北京某著名大学的08届博士!团队也有好多华人 hive的感觉很呆板,spark天马行空但吃内存并发底.pgsql-->greenplum-->hawq,一路走来,hawq算是够了.hawq的缺点是开发麻烦,CPP语言么!spark用scala语言,代码量少,开发快. hawq是计算存储分离,使用p2p udp快速传输数据.而spark计算和存储一体,RDD尽