初识Hadoop

  1.Hadoop 发展历史

  1.1 Hadoop 产生背景

  Hadoop 最早起源于Nutch。Nutch是一个开源的网络搜索引擎,始于2002年,Nutch的设计目标是构建一个大型的全网搜索引擎,包括抓取网页,索引,查询等,但是随着数据量的增加,遇到了扩展问题。直至2003年google发表了一篇关于google的文件系统GFS,该论文描述了google搜索引擎网页数据的存储架构,该架构解决了Nutch遇到的问题,随即实现了自己的分布式文件系统,即NDFS(此间google只是开源思想,但并未开源代码),到了2004年的google的另一篇论文MapReduce:simplified data processing on large cluster ,震惊世界,该论文描述了分布式计算的框架,但也只是开源思想,并不开源代码,Nutch的开发人员靠自己完成了实现,由于NDFS和MapReduce 的成功,2006年Nutch的开发人员,随即将其移出Nutch,成为Lucene的子项目,称为Hadoop(据说是Doug Cutting儿子的玩具大象的名字),随着Hadoop的发展,2008年,Hadoop已经成为Apache基金会的顶级项目,也促生了Hadoop 家族其他项目的发展。

  1.2 Hadoop思想之源

  Hadoop的思想主要来源于google,此间google的俩大论文GFS,MapReduce起了决定性的作用,而google的低成本之道(不使用超级计算机,不用存储;大量使用PC server,提供冗余的集群服务...)也是成功的根本。而google的成功也得益于Page Rank算法。

  

  

  

  更加详尽有关Page Rank可以参考:http://blog.csdn.net/v_july_v/article/details/6142146

  目前hadoop发展迅速,是实现云计算标准开源软件,已经可以在数千节点上面运行,处理数据量和速度有很可观的效果。同时,hadoop家族的项目也得到了相应的发展。

  2 Hadoop的架构

  2.1 Hadoop的俩大支柱:HDFS和MapReduce

  其中HDFS用于大规模数据的分布式存储,而MapReduce则构建在HDFS之上,对数据进行分布式计算。

  2.1 HDFS架构

  HDFS是一个具有高容错性的分布式系统,适合部署在廉价的机器上,HDFS可以提供高吞吐量的数据访问,适合大数据集的应用,主要有client,NameNode,SecondaryNameNode,DataNode几个组件构成。

  client:通过于NameNode于DataNode交互访问HDFS文件。

  NameNode:HDFS的守护程序,是个“总管”,记录文件是如何分割成数据块的,以及这些数据块存储到哪些节点,对IO和内存进行集中管理,且是个单点。

  SecondaryNameNode:监控HDFS状态的辅助后台程序,每个集群都有一个,与NameNode进行通讯,定期存储HDFS元数据快照,并且在NameNode故障的时候,提供备份作用。

  DataNode:负责把HDFS数据块读写到本地文件系统,并将数据定期汇报给NameNode,DataNode以固定大小的block(默认64MB)为基本单位。

  2.2 MapReduce 架构

  同HDFS一样,MR也采用了Master/Slave模式,有以下组件:client,JobTracker,TaskTracker,Task.

  JobTracker:负责资源监控和作业调度,运行主节点,对HDFS总控,决定哪些文件an参与处理,然后分割task并分配节点,重启失败的task等

  TaskTracker:位于slave节点上,与datanode结合,管理各自节点上的task,与JobTracker交互(周期性的通过 heartbeat将资源使用情况和任务进度汇报给jobtracker)。TaskTracker通过使用“slot”等量划分(划分方法用户自己决定)节点上的资源量,分为Mapslot 和Reduceslot来提供Map任务和Reduce任务的使用。

  Task:Map Task和Reduce Task,有TaskTracker启动。

  Map Task流程:Map Task先将对应的split(MapReduce处理单位)迭代解析成一个个的key/alue对,依次调用map函数进行处理,最终将临时结果存到本地磁盘中,其临时数据分成若干个partition,每个partition将被一个reduce task 处理。

  reduce task流程:读取partition部分,对结果排序,依次读取,调用用户自己的reduce函数处理,结果存到HDFS上面。

  

  参考书籍:Hadoop实战,Hadoop技术内幕 深入解析MapReduce架构设计与实现原理。

  dataguru:http://www.dataguru.cn/forum.php

时间: 2024-09-20 08:57:37

初识Hadoop的相关文章

《深入理解Hadoop(原书第2版)》——第3章 初识Hadoop框架 3.1 安装类型

第3章 初识Hadoop框架 前面的章节介绍了大数据的价值,然后对Hadoop系统进行了总体介绍,Hadoop系统是业界最重要的大数据框架.本章我们会真正地使用Hadoop系统框架.本章将指导你如何搭建Hadoop系统开发环境,以及如何在你选择的操作系统上安装Hadoop系统.你将能写出第一个简单的Hadoop程序,这会帮助你更深刻地理解Hadoop系统架构中的各种概念. 3.1安装类型 尽管Hadoop系统的安装常常是富有经验的系统管理员的工作,并且Hadoop系统的Apache站点上也有详尽

【书摘】大数据开发之初识Hadoop

本文节选于清华大学出版社推出的<Hadoop权威指南>一书,作者为Tom White,译者是华东师范大学数据科学与工程学院.本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具.全书共16章,3个附录,涉及的主题包括:Haddoop:MapReduce:Hadoop分布式文件系统:Hadoop的I/O.MapReduce应用程序开发:MapReduce的工作机制:MapReduce的类型和格式:MapReduce的特性:如何构建Ha

《深入理解Hadoop(原书第2版)》——导读

前 言 Hadoop已经进入Apache社区发展五年多了,使用Hadoop系统进行开发的工作仍然富于挑战但收获丰厚.本书第1版在若干年前就已经出版了,在这期间,Hadoop系统已经被越来越多的企业使用,自身也得到了飞速发展. Hadoop2.0基于YARN框架做了全新升级,重写了Hadoop系统的底层平台.本书从Hadoop使用者的角度出发讲解Hadoop的实现原理,浓缩了Hadoop软件系统的精华.作为作者,我们希望可以深入到源代码级别来理解Hadoop的运行原理及其背后的设计目标,渴望与你分

[Hadoop大数据]——Hive初识

Hive出现的背景 Hadoop提供了大数据的通用解决方案,比如存储提供了Hdfs,计算提供了MapReduce思想.但是想要写出MapReduce算法还是比较繁琐的,对于开发者来说,需要了解底层的hadoop api.如果不是开发者想要使用mapreduce就会很困难.... 另一方面,大部分的开发者都有使用SQL的经验.SQL成为开发者必备的技能... 那么可以不可以使用SQL来完成MapReduce的过程呢?-- 答案就是,Hive Hive能够解决的问题 Hive可以帮助开发者从现有的数

Hadoop2源码分析-Hadoop V2初识

1.概述 在完成分析Hadoop2源码的准备工作后,我们进入到后续的源码学习阶段.本篇博客给大家分享,让大家对Hadoop V2有个初步认识,博客的目录内容如下所示: Hadoop的渊源 Hadoop V2部分项目图 各个包的功能介绍 本篇文章的源码是基于Hadoop-2.6.0来分析,其他版本的Hadoop的源码可以此作为参考分析. 2.Hadoop的渊源 其实,早年Google的核心竞争力是它的计算平台,Google对外公布的论文有一下内容: GoogleCluster  Chubby  G

零基础搭建Hadoop大数据处理-初识

在互联网的世界中数据都是以TB.PB的数量级来增加的,特别是像BAT光每天的日志文件一个盘都不够,更何况是还要基于这些数据进行分析挖掘,更甚者还要实时进行数据分析,学习,如双十一淘宝的交易量的实时展示. 大数据什么叫大?4个特征: 体量化 Volume,就是量大. 多样化 Variety,可能是结构型的数据,也可能是非结构行的文本,图片,视频,语音,日志,邮件等 快速化 Velocity,产生快,处理也需要快. 价值密度低 Value,数据量大,但单个数据没什么意义,需要宏观的统计体现其隐藏的价

0基础搭建Hadoop大数据处理-初识

在互联网的世界中数据都是以TB.PB的数量级来增加的,特别是像BAT光每天的日志文件一个盘都不够,更何况是还要基于这些数据进行分析挖掘,更甚者还要实时进行数据分析,学习,如双十一淘宝的交易量的实时展示. 大数据什么叫大?4个特征: 体量化 Volume,就是量大. 多样化 Variety,可能是结构型的数据,也可能是非结构行的文本,图片,视频,语音,日志,邮件等 快速化 Velocity,产生快,处理也需要快. 价值密度低 Value,数据量大,但单个数据没什么意义,需要宏观的统计体现其隐藏的价

深入理解Spark:核心思想与源码分析. 2.1 初识Spark

2.1 初识Spark 2.1.1 Hadoop MRv1的局限 Hadoop1.0版本采用的是MRv1版本的MapReduce编程模型.MRv1版本的实现都封装在org.apache.hadoop.mapred包中,MRv1的Map和Reduce是通过接口实现的.MRv1包括三个部分: 运行时环境(JobTracker和TaskTracker): 编程模型(MapReduce): 数据处理引擎(Map任务和Reduce任务). MRv1存在以下不足: 可扩展性差:在运行时,JobTracker

《Spark大数据分析实战》——1.1节初识Spark

1.1 初识SparkSpark是基于内存计算的大数据并行计算框架,因为它基于内存计算,所以提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群.1.?Spark执行的特点Hadoop中包含计算框架MapReduce和分布式文件系统HDFS.Spark是MapReduce的替代方案,而且兼容HDFS.Hive等分布式存储层,融入Hadoop的生态系统,并弥补MapReduce的不足.(1)中间结果输出Spark将执行工作流抽象