Hadoop简介

  • Hadoop历史

雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

不得不说Google和Yahoo对Hadoop的贡献功不可没。

  • Hadoop核心

Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase、Hive等,这些都是基于 HDFS和MapReduce发展出来的。要想了解Hadoop,就必须知道HDFS和MapReduce是什么。

  • HDFS

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

HDFS的设计特点是:

1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。

2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得都。

3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。

4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。

5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

HDFS的关键元素:

Block:将一个文件进行分块,通常是64M。

NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.*开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode。

DataNode:分布在廉价的计算机上,用于存储Block块文件。

  • MapReduce

通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

下面以一个计算海量数据最大值为例:一个银行有上亿储户,银行希望找到存储金额最高的金额是多少,按照传统的计算方式,我们会这样:

Java代码:

Long moneys[] ...
Long max = 0L;
for(int i=0;i<moneys.length;i++){
  if(moneys[i]>max){
    max = moneys[i];
  }
}  

MapReduce会这样做:首先数字是分布存储在不同块中的,以某几个块为一个Map,计算出Map中最大的值,然后将每个Map中的最大值做Reduce操作,Reduce再取最大值给用户。


        MapReduce的基本原理就是:将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析,最终获得我们想要的内容。当然怎么分块分析,怎么做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据。

  • 总结

总的来说Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量。

Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。

上述内容原文连接为:http://blessht.iteye.com/blog/2095675

时间: 2024-07-31 04:32:08

Hadoop简介的相关文章

Hadoop入门一:Hadoop简介

  从数据爆炸开始...  1.1 第三次工业革命 第一次:18世纪60年代,手工工厂向机器大生产过渡,以蒸汽机的发明和使用为标志. 第二次:19世纪70年代,各种新技术新发明不断被应用于工业生产,以电力的发明使用为标志. 第三次:20世界四五十年代末,以高新技术为代表的新科学技术革命,以原子能.航天技术和电子计算机 为标志. 1.2 信息技术发展带来的数据爆炸 纽约证券所交易    每天 1TB FaceBook一千亿照片  1PB 腾讯 每天 300TB 淘宝 每天 pv20亿 数据量 50

Hadoop简介(1):什么是Map/Reduce

看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop整体有所了解了. Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等. 这里详细分解这里面的概念让大家通过这篇文章了解到底是什么hadoop: 1.什么是Map/Reduce,看

Hive入门学习--Hadoop简介

现在想要应聘大数据分析或者数据挖掘岗位,很多都需要会使用Hive,Mapreduce,Hadoop等这些大数据分析技术.为了充实自己就先从简单的Hive开始吧.接下来的几篇文章是记录我如何入门学习Hive的. 一.Hive简介 Hive是一个数据仓库基础工具,架构在Hadoop之上,能够处理Hadoop中的结构化数据.简言之,Hive和SQL是一个数据分析和处理工具,它提供了SQL查询功能,可以将SQL语句转换为Mapreduce任务运行. 既然Hive是架构在Hadoop之上的,我们就有必要简

大数据开发生态圈之Apache Hadoop简介

Hadoop概述 Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)

Hadoop详解一:Hadoop简介

从数据爆炸开始... 一. 第三次工业革命 第一次:18世纪60年代,手工工厂向机器大生产过渡,以蒸汽机的发明和使用为标志. 第二次:19世纪70年代,各种新技术新发明不断被应用于工业生产,以电力的发明使用为标志. 第三次:20世界四五十年代末,以高新技术为代表的新科学技术革命,以原子能.航天技术和电子计算机 为标志. 二. 信息技术发展带来的数据爆炸 纽约证券所交易    每天 1TB FaceBook一千亿照片  1PB 腾讯 每天 300TB 淘宝 每天 pv20亿 数据量 50TB ..

[Hadoop in Action] 第1章 Hadoop简介

编写可扩展.分布式的数据密集型程序和基础知识 理解Hadoop和MapReduce 编写和运行一个基本的MapReduce程序 1.什么是Hadoop Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据. Hadoop与众不同之处在于以下几点: 方便--Hadoop运行在由一般商用机器构成的大型集群上,或者云计算服务之上: 健壮--Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁地出现失效: 可扩展--Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集:

剖析大数据之Hadoop简介

随着互联网飞速的发展,海量的数据由现有的软件工具无法高效.及时.准确的进行捕捉.存储.管理.分析.所以大数据和云计算的出现改变了现有的服务模式,降低了拥有成本,改变了人类的生活习惯. <大数据概述> 通过海量的数据分析,提供给用户良好的决策和支撑,并推荐符号用户生活习惯的产品,并在此过程中不断的完善自身的算法,从而改善用户体验. <云计算概述> 云计算是一种按使用量付费的模式,该模式提供了可用的.便捷的.按用户需求的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,

(转)Hadoop 简介

转自:http://www.open-open.com/lib/view/open1385685943484.html mapreduce是一种模式,一种什么模式呢?一种云计算的核心计算模式,一种分布式运算技术,也是简化的分布式编程模式,它主要用于解决问题的程序开发模型,也是开发人员拆解问题的方法. 如下图所示,mapreduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式,流程图如下图1所示: 在数据被分割后通过Map 函数的程序将数据映射

大数据笔记01:大数据之Hadoop简介

1. 背景 随着大数据时代来临,人们发现数据越来越多.但是如何对大数据进行存储与分析呢?   单机PC存储和分析数据存在很多瓶颈,包括存储容量.读写速率.计算效率等等,这些单机PC无法满足要求. 2. 为解决这些存储容量.读写速率.计算效率等等问题,google大数据技术开发了三大革命性技术解决这些问题,这三大技术为: (1)MapReduce (2)BigTable (3)GFS 技术革命性:    革命性变化01:成本降低,能使用PC,就不用大型机和高端存储.    革命性变化02:软件容错