Hadoop百度百科

http://baike.baidu.com/link?url=-lfWMjGNGBJxKC1QKKhefXvB7Wou6Ztn8mgeZf8u-1iH5fcf25lbRfqpW1SGwOmQL0JIk3P1PmfFb_ygARZn5a
 
Hadoop是一个由Apache基金会所开发的 分布式系统基础架构。
用户能够在不了解分布式底层细节的状况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
[1]   Hadoop实现了一个 分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高 容错性的特色,而且设计用来部署在低廉的(low-cost)硬件上;并且它提供高吞吐量(high throughput)来访问 应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,能够以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。[2]  
中文名
海杜普
外文名
Hadoop
类    别
电脑程序
全    称
Hadoop Distributed File System

起源

编辑

项目起源

Hadoop由 Apache Software Foundation 公司于 2005 年秋天做为 Lucene的子项目 Nutch的一部分正式引入。它受到最早由 Google Lab 开发的 Map/Reduce 和 Google File System( GFS) 的启发。
2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分别被归入称为 Hadoop 的项目中。
Hadoop 是最受欢迎的在 Internet 上对搜索 关键字进行内容分类的工具,但它也能够解决许多要求极大伸缩性的问题。例如,若是您要 grep 一个 10TB 的巨型文件,会出现什么状况?在传统的系统上,这将须要很长的时间。可是 Hadoop 在设计时就考虑到这些问题,采用 并行执行机制,所以能大大提升效率。

发展历程

Hadoop本来来自于谷歌一款名为MapReduce的编程模型包。谷歌的MapReduce框架能够把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行很是巨大的数据集。使用该框架的一个典型例子就是在网络数据上运行的搜索算法。Hadoop[3]  最初只与网页索引有关,迅速发展成为分析大数据的领先平台。
目前有不少公司开始提供基于Hadoop的商业软件、支持、服务以及培训。Cloudera是一家美国的企业软件公司,该公司在2008年开始提供基于Hadoop的软件和服务。GoGrid是一家云计算基础设施公司,在2012年,该公司与Cloudera合做加速了企业采纳基于Hadoop应用的步伐。Dataguise公司是一家数据安全公司,一样在2012年该公司推出了一款针对Hadoop的数据保护和风险评估。

名字起源

Hadoop这个名字不是一个缩写,而是一个虚构的名字。该项目的建立者,Doug Cutting解释Hadoop的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的。个人命名标准就是简短,容易发音和拼写,没有太多的意义,而且不会被用于别处。小孩子偏偏是这方面的高手。”
Hadoop的发音是 [hædu:p]。

优势

编辑
Hadoop是一个可以对大量数据进行 分布式处理软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。
Hadoop 是可靠的,由于它假设计算元素和存储会失败,所以它维护多个工做数据副本,确保可以针对失败的节点从新 分布处理
Hadoop 是高效的,由于它以并行的方式工做,经过 并行处理加快处理速度。
Hadoop 仍是可伸缩的,可以处理  PB 级数据。
此外,Hadoop 依赖于社区服务,所以它的成本比较低,任何人均可以使用。
Hadoop是一个可以让用户轻松架构和使用的 分布式计算平台。用户能够轻松地在Hadoop上开发和运行处理海量数据的 应用程序。它主要有如下几个优势:
  1. 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  2. 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇能够方便地扩展到数以千计的节点中。
  3. 高效性。Hadoop可以在节点之间动态地移动数据,并保证各个节点的 动态平衡,所以处理速度很是快。
  4. 高容错性。Hadoop可以自动保存数据的多个副本,而且可以自动将失败的任务从新分配。
  5. 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本所以会大大下降。
Hadoop带有用 Java语言编写的框架,所以运行在 Linux 生产平台上是很是理想的。Hadoop 上的 应用程序也可使用其余语言编写,好比  C++
hadoop大数据处理的意义
Hadoop得以在大数据处理应用中普遍应用得益于其自身在数据提取、变形和加载(ETL)方面上的自然优点。Hadoop的分布式架构,将大数据处理引擎尽量的靠近存储,对例如像ETL这样的批处理操做相对合适,由于相似这样操做的批处理结果能够直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,以后再以单个数据集的形式加载(Reduce)到数据仓库里。[1]  

核心架构

编辑
Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中全部存储节点上的文件。HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。经过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的全部技术核心。[4]  

HDFS

对外部客户机而言, HDFS就像一个传统的分级文件系统。能够建立、删除、移动或 重命名文件,等等。可是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特色决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。因为仅存在一个 NameNode,所以这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分红块,而后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(一般为 64MB)和复制的块数量在建立文件时由客户机决定。NameNode 能够控制全部文件操做。HDFS 内部的全部通讯都基于标准的  TCP/IP 协议。

NameNode

NameNode 是一个一般在  HDFS 实例中的单独机器上运行的 软件。它负责管理文件系统 名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最多见的 3 个复制块,第一个复制块存储在同一机架的不一样节点上,最后一个复制块存储在不一样机架的某个节点上。注意,这里须要您了解集群架构。
实际的 I/O 事务并无通过 NameNode,只有表示 DataNode 和块的文件映射的元数据通过 NameNode。当外部客户机发送请求要求建立文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址做为响应。这个 NameNode 还会通知其余将要接收该块的副本的 DataNode。
NameNode 在一个称为 FsImage 的文件中存储全部关于文件系统 名称空间的信息。这个文件和一个包含全部事务的 记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也须要复制副本,以防文件损坏或 NameNode 系统丢失。
NameNode自己不可避免地具备SPOF(Single Point Of Failure)单点失效的风险,主备模式并不能解决这个问题,经过Hadoop Non-stop namenode才能实现100% uptime可用时间。

DataNode

DataNode 也是一个一般在  HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 一般以机架的形式组织,机架经过一个 交换机将全部系统链接起来。Hadoop 的一个假设是:机架内部 节点之间的传输速度快于机架间节点的传输速度。
DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的建立、删除和复制块的命令。NameNode 依赖来自每一个 DataNode 的按期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 能够根据这个报告验证块映射和其余文件系统元数据。若是 DataNode 不能发送心跳消息,NameNode 将采起修复措施,从新复制在该节点上丢失的块。

文件操做

可见,HDFS 并非一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。
若是客户机想将文件写到 HDFS 上,首先须要将该文件缓存到本地的临时存储。若是缓存的数据大于所需的 HDFS 块大小,建立文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。
同时也通知将要保存文件块副本的 DataNode。当客户机开始将 临时文件发送给第一个 DataNode 时,将当即经过管道方式将块内容转发给副本 DataNode。客户机也负责建立保存在相同 HDFS 名称空间中的校验和(checksum)文件。
在最后的文件块发送以后,NameNode 将文件建立提交到它的持久化元 数据存储(在 EditLog 和 FsImage 文件)。

Linux 集群

Hadoop 框架可在单一的 Linux 平台上使用(开发和调试时),官方提供MiniCluster做为单元测试使用,不过使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop  集群。它经过集群拓扑知识决定如何在整个集群中分配做业和文件。Hadoop 假定节点可能失败,所以采用本机方法处理单个计算机甚至全部机架的失败。
Hadoop和高效能计算、网格计算的区别
在Hadoop 出现以前,高性能计算和网格计算一直是处理大数据问题主要的使用方法和工具,它们主要采用消息传递接口(Message Passing Interface,MPI)提供的API 来处理大数据。高性能计算的思想是将计算做业分散到集群机器上,集群计算节点访问存储区域网络SAN 构成的共享文件系统获取数据,这种设计比较适合计算密集型做业。当须要访问像PB 级别的数据的时候,因为存储设备网络带宽的限制,不少集群计算节点只能空闲等待数据。而Hadoop却不存在这种问题,因为Hadoop 使用专门为分布式计算设计的文件系统HDFS,计算的时候只须要将计算代码推送到存储节点上,便可在存储节点上完成数据本地化计算,Hadoop 中的集群存储节点也是计算节点。在分布式编程方面,MPI 是属于比较底层的开发库,它赋予了程序员极大的控制能力,可是却要程序员本身控制程序的执行流程,容错功能,甚至底层的套接字通讯、数据分析算法等底层细节都须要本身编程实现。这种要求无疑对开发分布式程序的程序员提出了较高的要求。相反,Hadoop 的MapReduce 倒是一个高度抽象的并行编程模型,它将分布式并行编程抽象为两个原语操做,即map 操做和reduce 操做,开发人员只须要简单地实现相应的接口便可,彻底不用考虑底层数据流、容错、程序的并行执行等细节。这种设计无疑大大下降了开发分布式并行程序的难度。
网格计算一般是指经过现有的互联网,利用大量来自不一样地域、资源异构的计算机空闲的CPU 和磁盘来进行分布式存储和计算。这些参与计算的计算机具备分处不一样地域、资源异构(基于不一样平台,使用不一样的硬件体系结构等)等特征,从而使网格计算和Hadoop 这种基于集群的计算相区别开。Hadoop 集群通常构建在经过高速网络链接的单一数据中心内,集群计算机都具备体系结构、平台一致的特色,而网格计算须要在互联网接入环境下使用,网络带宽等都没有保证。
发展示状
Hadoop 设计之初的目标就定位于高可靠性、高可拓展性、高容错性和高效性,正是这些设计上与生俱来的优势,才使得Hadoop 一出现就受到众多大公司的青睐,同时也引发了研究界的广泛关注。到目前为止,Hadoop 技术在互联网领域已经获得了普遍的运用,例如,Yahoo 使用4 000 个节点的Hadoop集群来支持广告系统和Web 搜索的研究;Facebook 使用1 000 个节点的集群运行Hadoop,存储日志数据,支持其上的数据分析和机器学习;百度用Hadoop处理每周200TB 的数据,从而进行搜索日志分析和网页数据挖掘工做;中国移动研究院基于Hadoop 开发了“大云”(Big Cloud)系统,不但用于相关数据分析,还对外提供服务;淘宝的Hadoop 系统用于存储并处理电子商务交易的相关数据。国内的高校和科研院所基于Hadoop 在数据存储、资源管理、做业调度、性能优化、系统高可用性和安全性方面进行研究,相关研究成果多以开源形式贡献给Hadoop 社区。
除了上述大型企业将Hadoop 技术运用在自身的服务中外,一些提供Hadoop 解决方案的商业型公司也纷纷跟进,利用自身技术对Hadoop 进行优化、改进、二次开发等,而后以公司自有产品形式对外提供Hadoop 的商业服务。比较知名的有创办于2008 年的Cloudera 公司,它是一家专业从事基于ApacheHadoop 的数据管理软件销售和服务的公司,它但愿充当大数据领域中相似RedHat 在Linux 世界中的角色。该公司基于Apache Hadoop 发行了相应的商业版本Cloudera Enterprise,它还提供Hadoop 相关的支持、咨询、培训等服务。在2009 年,Cloudera 聘请了Doug Cutting(Hadoop 的创始人)担任公司的首席架构师,从而更加增强了Cloudera 公司在Hadoop 生态系统中的影响和地位。最近,Oracle 也表示已经将Cloudera 的Hadoop 发行版和Cloudera Manager 整合到Oracle Big Data Appliance 中。一样,Intel 也基于Hadoop 发行了本身的版本IDH。从这些能够看出,愈来愈多的企业将Hadoop 技术做为进入大数据领域的必备技术。
须要说明的是,Hadoop 技术虽然已经被普遍应用,可是该技术不管在功能上仍是在稳定性等方面还有待进一步完善,因此还在不断开发和不断升级维护的过程当中,新的功能也在不断地被添加和引入,读者能够关注Apache Hadoop的官方网站了解最新的信息。得益于如此多厂商和开源社区的大力支持,相信在不久的未来,Hadoop 也会像当年的Linux 同样被普遍应用于愈来愈多的领域,从而风靡全球。
MapReduce与Hadoop之比较
Hadoop是Apache软件基金会发起的一个项目,在大数据分析以及非结构化数据蔓延的背景下,Hadoop受到了史无前例的关注。
Hadoop是一种分布式数据和计算的框架。它很擅长存储大量的半结构化的数据集。数据能够随机存放,因此一个磁盘的失败并不会带来数据丢失。Hadoop也很是擅长分布式计算——快速地跨多台机器处理大型数据集合。
MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还能够用更传统的语言(C++,Java),一步步地来解决问题。这是两种不一样的编程模型,MapReduce就是另一种。
MapReduce和Hadoop是相互独立的,实际上又能相互配合工做得很好。

集群系统

编辑
Google的 数据中心使用廉价的Linux PC机组成集群,在上面运行各类应用。即便是 分布式开发的新手也能够迅速使用Google的基础设施。核心组件是3个:
⒈GFS(Google File System)。一个 分布式文件系统,隐藏下层 负载均衡冗余复制等细节,对上层程序提供一个统一的文件系统 API接口。Google根据本身的需求对它进行了特别优化,包括:超大文件的访问,读操做比例远超过写操做,PC机极易发生故障形成节点失效等。GFS把文件分红64MB的块,分布在 集群的机器上,使用Linux的文件系统存放。同时每块文件至少有3份以上的 冗余。中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程师发布的GFS论文。
⒉MapReduce。Google发现大多数分布式运算能够抽象为MapReduce操做。Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。这两个函数由 程序员提供给系统,下层设施把Map和Reduce操做分布在 集群上运行,并把结果存储在GFS上。
⒊BigTable。一个大型的 分布式数据库,这个数据库不是关系式的数据库。像它的名字同样,就是一个巨大的 表格,用来存储结构化的数据。
以上三个设施 Google均有论文发表。
  1. 《The Google File System 》 2003年[5]  
  2. 《MapReduce: Simplified Data Processing on Large Clusters》 2004年[6]  
  3. 《Bigtable: A Distributed Storage System for Structured Data》 2006年[7]  

应用程序

编辑
Hadoop 的最多见用法之一是 Web 搜索。虽然它不是惟一的 软件框架 应用程序,但做为一个并行 数据处理引擎,它的表现很是突出。Hadoop 最有趣的方面之一是 Map and Reduce 流程,它受到 Google开发的启发。这个流程称为建立索引,它将 Web 爬行器检索到的文本 Web 页面做为输入,而且将这些页面上的单词的频率报告做为结果。而后能够在整个 Web 搜索过程当中使用这个结果从已定义的搜索参数中识别内容。
最简单的 MapReduce 应用程序至少包含 3 个部分:一个 Map  函数、一个 Reduce 函数和一个 main 函数。main 函数将 做业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和 抽象类,从而为 Hadoop 应用程序开发人员提供许多工具,可用于调试和性能度量等。
MapReduce 自己就是用于 并行处理大数据集的 软件框架。MapReduce 的根源是函数性编程中的 map 和 reduce 函数。它由两个可能包含有许多实例(许多 Map 和 Reduce)的操做组成。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每一个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,而后根据它们的键(为每一个键生成一个键/值对)缩小键/值对列表。
这里提供一个示例,帮助您理解它。假设输入域是 one small step for man,one giant leap for mankind。在这个域上运行 Map 函数将得出如下的键/值对列表:
(one,1) (small,1) (step,1) (for,1) (man,1)
MapReduce 流程的概念流 MapReduce 流程的概念流
(one,1) (giant,1) (leap,1) (for,1) (mankind,1)
若是对这个键/值对列表应用 Reduce 函数,将获得如下一组键/值对:
(one,2) (small,1) (step,1) (for,2) (man,1)(giant,1) (leap,1) (mankind,1)
结果是对输入域中的单词进行计数,这无疑对处理索引十分有用。可是,假设有两个输入域,第一个是 one small step for man,第二个是 one giant leap for mankind。您能够在每一个域上执行 Map 函数和 Reduce 函数,而后将这两个键/值对列表应用到另外一个 Reduce 函数,这时获得与前面同样的结果。换句话说,能够在输入域并行使用相同的操做,获得的结果是同样的,但速度更快。这即是 MapReduce 的威力;它的并行功能可在任意数量的系统上使用。图 2 以区段和迭代的形式演示这种思想。
回到 Hadoop 上,
显示处理和存储的物理分布的 Hadoop 集群 显示处理和存储的物理分布的 Hadoop 集群
它是如何实现这个功能的?一个表明客户机在单个主系统上启动的 MapReduce 应用程序称为 JobTracker。相似于 NameNode,它是 Hadoop 集群中唯一负责控制 MapReduce 应用程序的系统。在 应用程序提交以后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)肯定如何建立其余 TaskTracker 从属任务。MapReduce 应用程序被复制到每一个出现输入文件块的节点。将为特定节点上的每一个文件块建立一个唯一的从属任务。每一个 TaskTracker 将状态和完成信息报告给 JobTracker。图 3 显示一个示例集群中的工做分布。
Hadoop 的这个特色很是重要,由于它并无将存储移动到某个位置以供处理,而是将处理移动到存储。这经过根据集群中的节点数调节处理,所以支持高效的 数据处理

区别

编辑
Hadoop是Apache软件基金会发起的一个项目,在大数据分析以及非结构化数据蔓延的背景下,Hadoop受到了史无前例的关注。[8]  
Hadoop是一种分布式数据和计算的框架。它很擅长存储大量的半结构化的数据集。数据能够随机存放,因此一个磁盘的失败并不会带来数据丢失。Hadoop也很是擅长分布式计算——快速地跨多台机器处理大型数据集合。
MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还能够用更传统的语言( C++,Java),一步步地来解决问题。这是两种不一样的编程模型,MapReduce就是另一种。
MapReduce和Hadoop是相互独立的,实际上又能相互配合工做得很好。[9]  

开源实现

编辑
Hadoop是项目的总称。主要是由HDFS和MapReduce组成。
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
这个分布式框架颇有创造性,并且有极大的扩展性,使得Google在系统吞吐量上有很大的竞争力。所以Apache基金会用Java实现了一个开源版本,支持Fedora、Ubuntu等Linux平台。雅虎和硅谷风险投资公司Benchmark Capital 联合成立一家名为Hortonworks的新公司,接管被普遍应用的数据分析 软件Hadoop的开发工做。
Hadoop实现了HDFS文件系统和MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job便可自动分布式运行。
至今为止是2.4.1,稳定版本是1.2.1 和 yarn 的 2.4.0。
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运算。

子项目

编辑
Hadoop Common: 在0.20及之前的版本中,包含HDFS、MapReduce和其余项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其他内容为Hadoop Common
HDFS: Hadoop 分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)
MapReduce并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API
HBase: 相似Google BigTable的分布式NoSQL列数据库。( HBaseAvro已经于2010年5月成为顶级 Apache 项目)
Hive:数据仓库工具,由Facebook贡献。
Zookeeper:分布式锁设施,提供相似Google Chubby的功能,由Facebook贡献。
Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
Pig: 大数据分析平台,为用户提供多种接口。
Ambari:Hadoop管理工具,能够快捷的监控、部署、管理集群。
Sqoop:于在HADOOP与传统的数据库间进行数据的传递。

研究

编辑
Hadoop是原Yahoo的Doug Cutting根据Google发布的学术论文研究而来。Doug Cutting给这个Project起了个名字,就叫Hadoop。
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的学术论文,其中包涵有:
  1. Google File System(大规模分散文件系统)
  2. MapReduce (大规模分散FrameWork)
  3. BigTable(大规模分散数据库)
  4. Chubby(分散锁服务)

大事记

编辑
2011年12月27日--1.0.0版本释出。标志着Hadoop已经初具生产规模。
2009年4月-- 赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序100 TB数据(在3400个节点上)。
2009年3月-- 17个集群总共24 000台机器。
2008年10月-- 研究集群天天装载10 TB的数据。
2008年4月-- 赢得世界最快1 TB 数据排序在900个节点上用时209秒。
2007年4月-- 研究集群达到两个1000个节点的集群。
2007年1月-- 研究集群到达900个节点。
2006年12月-- 标准排序在20个节点上运行1.8个小时,100个节点3.3小时,500个节点5.2小时,900个节点7.8个小时。
2006年11月-- 研究集群增长到600个节点。
2006年5月-- 标准排序在500个节点上运行42个小时(硬件配置比4月的更好)。
2006年5月-- 雅虎创建了一个300个节点的Hadoop研究集群。
2006年4月-- 标准排序(10 GB每一个节点)在188个节点上运行47.9个小时。
2006年2月-- 雅虎的 网格计算团队采用Hadoop。
2006年2月-- Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。
2006年1月-- Doug Cutting加入雅虎。
2005年12月-- Nutch移植到新的框架,Hadoop在20个节点上稳定运行。
2004年-- 最初的版本(称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella开始实施。

认证

编辑

Cloudera

Cloudera公司主要提供Apache Hadoop开发工程师认证(Cloudera CertifiedDeveloper for Apache Hadoop ,CCDH)和Apache Hadoop管理工程师认证(Cloudera CertifiedAdministrator for Apache Hadoop ,CCAH),更多相关信息,请参阅Cloudera公司官方网站。

Hortonworks

Hortonworks Hadoop培训课程是由Apache Hadoop项目的领导者和核心开发人员所设计,表明了这一行业的最高水平。
Hortonworks是国际领先的开发、推广和支持Apache Hadoop的商业供应商,它的Hadoop认证也是业界公认的Hadoop权威认证,分为开发者认证(HCAHD[10]   , Hortonworks Certified Apache HadoopDeveloper)和管理员认证(HCAHA, Hortonwork Certified Apache HadoopAdministrator)。

信息安全

编辑
经过Hadoop安所有署经验总结,开发出如下十大建议,以确保大型和复杂多样环境下的数据信息安全。
一、先下手为强!在规划部署阶段就肯定数据的隐私保护策略,最好是在将数据放入到Hadoop以前就肯定好保护策略。
  二、肯定哪些数据属于企业的敏感数据。根据公司的隐私保护政策,以及相关的行业法规和政府规章来综合肯定。
  三、及时发现敏感数据是否暴露在外,或者是否导入到Hadoop中。
  四、搜集信息并决定是否暴露出安全风险。
  五、肯定商业分析是否须要访问真实数据,或者肯定是否可使用这些敏感数据。而后,选择合适的加密技术。若是有任何疑问,对其进行加密隐藏处理,同时提供最安全的加密技术和灵活的应对策略,以适应将来需求的发展。
  六、确保数据保护方案同时采用了隐藏和 加密技术,尤为是若是咱们须要将敏感数据在Hadoop中保持独立的话。
  七、确保数据保护方案适用于全部的数据文件,以保存在数据汇总中实现数据分析的准确性。
  八、肯定是否须要为特定的数据集量身定制保护方案,并考虑将Hadoop的目录分红较小的更为安全的组。
  九、确保选择的加密解决方案可与公司的访问控制技术互操做,容许不一样用户能够有选择性地访问Hadoop集群中的数据。
  十、确保须要加密的时候有合适的技术(好比 Java、Pig等)可被部署并支持无缝解密和快速访问数据。[11]  

Hadoop之父

编辑
生活中,可能全部人都间接用过他的做品,
他是Lucene、Nutch 、Hadoop等项目的发起人。是他,把高深莫测的搜索技术造成产品,贡献给普通大众;仍是他,打造了在云计算和大数据领域里如日中天的Hadoop[12]   。他是某种意义上的盗火者,他就是Doug Cutting。

图册

编辑
HDFS流程图
HDFS流程图  (2张)
词条图册
相关文章
相关标签/搜索