http://baike.baidu.com/view/908354.htm(自)
一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop
Distributed File
System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high
throughput)来访问应用程序的数据,适合那些有着超大数据集(large data
set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming
access)文件系统中的数据。
项目主页:http://hadoop.apache.org
一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。
简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File
System),简称HDFS。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而
且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data
set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming
access)文件系统中的数据。
下面列举hadoop主要的一些特点:
1
扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。2
成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。3
高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。4
可靠性(Reliable):hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。
起源:Google的集群系统
Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。核心组件是3个:
1、GFS(Google File
System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它
进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。GFS把文件分成64MB的块,分布在集群的机器
上,使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程
师发布的GFS论文。
2、MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操
作。Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给
系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。
3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。
以上三个设施Google均有论文发表。
Hadoop是项目的总称,起源于作者儿子的一只吃饱了的大象的名字。主要是由HDFS、MapReduce和Hbase组成。
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
HBase是Google BigTable的开源实现。
这个分布式框架很有创造性,而且有极大的扩展性,使得Google在系统吞吐量上有很大的竞争
力。因此Apache基金会用Java实现了一个开源版本,支持Fedora、Ubuntu等Linux平台。目前Hadoop受到Yahoo的支持,有
Yahoo员工长期工作在项目上,而且Yahoo内部也准备使用Hadoop代替原来的的分布式系统。
Hadoop实现了HDFS文件系统和MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。
目前Release版本是0.20.1。还不成熟,但是已经集群规模已经可以达到4000个节点,是由Yahoo!实验室中构建的。下面是此集群的相关数据:
• 4000 节点
• 2 x quad core Xeons@2.5ghz per 节点
• 4 x 1TB SATA Disk per 节点
• 8G RAM per 节点
• 千兆带宽 per 节点
• 每机架有40个节点
• 每个机架有4千兆以太网上行链路
• Redhat Linux AS4 ( Nahant update 5 )
• Sun Java JDK1.6.0_05 - b13
• 所以整个集群有30000多个CPU,近16PB的磁盘空间!
HDFS把节点分成两类:NameNode和DataNode。NameNode是唯一的,程序与之通信,然后从DataNode上存取文件。这些操作是透明的,与普通的文件系统API没有区别。
MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。
HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。
Hadoop也跟其他云计算
项目有共同点和目标:实现海量数据的计算。而进行海量计算需要一个稳定的,安全的数据容器,才有了Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)。
HDFS通信部分使用org.apache.hadoop.ipc,可以很快使用RPC.Server.start()构造一个节点,具体业务功能还需自己实现。针对HDFS的业务则为数据流的读写,NameNode/DataNode的通信等。
MapReduce主要在org.apache.hadoop.mapred,实现提供的接口类,并完成节点通信(可以不是hadoop通信接口),就能进行MapReduce运算。
目前这个项目还在进行中,还没有到达1.0版本,和Google系统的差距也非常大,但是进步非常快,值得关注。
另外,这是云计算(Cloud Computing)的初级阶段的实现,是通向未来的桥梁。
Hadoop的发音音标 [hædu:p]
Hadoop研究
Hadoop是原Yahoo的Doug Cutting根据Google发布的学术论文研究而来。Doug Cutting给这个Project起了个名字,
就叫Hadoop。其实Hadoop也是Doug Cutting的孩子的玩具的名字,一个可爱的黄色小象。
现在,Doug Cutting在Cloudera公司。Cloudera的Hadoop是商用版。不同于Apache的开源版。
如果要研究Hadoop的话,在下载Apache的版本是一种不错的选择。
只研究Apache版本的,不足以对Hadoop的理念理解。再对Cloudera版本的研究,会更上一层楼。
现在美国的AsterData,也是Hadoop的一个商用版,AsterData的MPP理念,Applications Within理念等等,
也都是值得研究。
Google的成功已经说明了RDB的下一代就是Nosql(Not Only SQl),比说说GFS,Hadoop等等。
Hadoop作为开源的版本来说,其魅力更是不可估量。
上文中说到Google的学术论文,其中包涵有
Google File System(大规模分散文件系统)
MapReduce (大规模分散FrameWork)
BigTable(大规模分散数据库)
Chubby(分散锁服务)
这四大InfrastructureSoftware的陈述。
说起Google的GFS和Hadoop,不仅让我想起了,Unix和Linux。
由Unix而来的开源Linux,现在更是家喻户晓了。很多大型公司都起用Linux作为服务器。
相信不久的将来,Hadoop会像Linux一样,席卷全球,惠而全球。
扩展阅读:
http://hadoop.apache.org
http://bbs.hadoopor.com
分享到:
相关推荐
【标题】:“Hadoop伪分布式配置详解” 【描述】:本文档详细介绍了如何在Ubuntu 10.10操作系统上,使用Hadoop 0.20.2版本搭建Hadoop的伪分布式环境,包括所有必要的配置步骤和注意事项。 【正文】: ...
在使用Hadoop集群的过程中,可能会遇到一系列的错误和问题,这些问题主要集中在集群的启动、在Master上运行示例以及在Windows环境下使用Eclipse运行程序时。以下是对这些常见错误的详细解析和解决策略: ...
在本压缩包中,我们关注的是Java、Hadoop、Scala和Spark这四个技术在Windows 10环境下的配置。这些工具广泛应用于大数据处理和分析领域,尤其是Spark在现代数据科学中扮演了重要角色。让我们逐一深入理解这些技术...
### Hadoop单机安装与集群安装相关知识点 #### 一、文档概述 本文档主要针对Hadoop的安装和配置过程进行了详细的说明,旨在简化Hadoop的部署流程。它覆盖了Hadoop单机安装以及集群安装的过程,并且适用于CentOS 5/...
在IT行业中,Hadoop是一个广泛使用的开源框架,用于处理和存储海量数据。它基于分布式文件系统HDFS(Hadoop Distributed File System),并采用MapReduce计算模型进行数据处理。本实例将深入探讨Hadoop的核心组件、...
大数据和NoSql是现代信息技术领域的两个重要概念,它们在处理海量数据和构建高效数据库系统方面发挥着关键作用。本文将深入探讨这两个主题,以及在实际应用中如何利用它们来设计和优化大型互联网企业的架构。...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。它是由Apache软件基金会开发的,其设计目标是使大型数据集在廉价硬件上进行处理变得可能。本主题将聚焦于Hadoop的不同版本及其bin...
这个资源是传智播客的JavaEE + 物联云技术,等成套视频下载地址。 免费,有效。2014-5-7
### Map-Reduce原理体系架构和工作机制 #### 一、Map-Reduce原理概述 Map-Reduce是一种编程模型,用于处理大规模数据集(通常是TB级或更大),该模型可以在大量计算机(称为集群)上进行并行处理。...
Hadoop搭建步骤 Hadoop是一个大数据处理框架,环境搭建是学习Hadoop的第一步,但要成功搭建一个分布式环境,还是颇费些周折的。以下是Hadoop搭建步骤的详细讲解。 一、静态IP配置 在所有机器上手工设置静态IP,...
Hadoop作为开源分布式系统基础架构,由Apache基金会开发,允许用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。它解决了大数据存储和处理的问题,尤其适合处理非结构化...
在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说,它们在本地开发和运行Hadoop相关应用时必不可少。`hadoop.dll`是一个动态链接库文件,主要用于在Windows环境中提供...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。它是由Apache软件基金会开发并维护的,旨在实现高效、可扩展的数据处理能力。Hadoop的核心由两个主要组件构成:Hadoop Distributed ...
编译好的hadoop-eclipse-plugin, 针对hadopp1.2.1版本. 下载后放到eclipse luna(4.4.2)版本, 再重启eclipse.
通过爬虫技术爬取疫情的信息,然后经过Hadopp等处理,然后存至MySQL,再通过ECharts实现大屏可视化,展示数据的方式包括地图、图表等……也配置了定时任务,将后端jar包部署到服务器后,可以实现每天定时爬取数据,...
这个"hadopp Windows 运行环境"就是为在Windows操作系统上搭建和运行Hadoop环境提供所需的支持。 Hadoop的核心由两个主要组件构成:Hadoop分布式文件系统(HDFS)和MapReduce。HDFS是Hadoop的数据存储层,它将大...
简介:介绍Netty来源,版本,目前在哪些主流公司和产品框架使用 1、Netty是由JBOSS提供的一个java开源框架, 是业界最流行的NIO框架,整合了多种协议( 包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,精心...
这份"hadopp学习总结1-5"的资料很可能是针对Hadoop基础到进阶的一系列教程或笔记,旨在帮助学习者掌握这个强大的工具。下面我们将深入探讨Hadoop的相关知识点。 1. **Hadoop简介**: Hadoop是Apache软件基金会的一...
#### 一、Hive简介与安装目的 Hive 是基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。极其适合对海量结构化...
这个"hadopp-minicluster-sample"项目就是专门用来展示如何使用Hadoop Mini Cluster的实例。 首先,我们要理解Hadoop Mini Cluster的基本概念。它包含了HDFS(Hadoop分布式文件系统)、MapReduce、YARN(Yet ...