好程序员大数据培训分享Apache-Hadoop简介,一、Hadoop涌现的缘故原由:现在的我们,生活在数据大爆炸的年代。国际数据公司已经预测在2020年,环球的数据总量将达到44ZB,经由单位换算后,至少在440亿TB以上,也便是说,环球每人一块1TB的硬盘都存储不下。
一些数据集的大小更远远超过了1TB,也便是说,数据的存储是一个要办理的问题。同时,硬盘技能也面临一个技能瓶颈,便是硬盘的传输速率(读数据的速率)的提升远远低于硬盘容量的提升。我们看下面这个表格:
硬盘瓶颈比较
可以看到,容量提升了将近1000倍,而传输速率才提升了20倍,读完一个硬盘的所须要的韶光相对来说,更长更久了(已经违反了数据代价的即时性)。读数据都花了这么永劫光,更不用说写数据了。
对付如何提高读取数据的效率,我们已经想到办理的方法了,那便是将一个数据集存储到多个硬盘里,然后并行读取。比如1T的数据,我们均匀100份存储到100个1TB硬盘上,同时读取,那么读取完全个数据集的韶光用不上两分钟。至于硬盘剩下的99%的容量,我们可以用来存储其他的数据集,这样就不会产生摧残浪费蹂躏。办理读取效率问题的同时,我们也办理了大数据的存储问题。
但是,我们同时对多个硬盘进行读/写操作时,又有了新的问题须要办理:
1、硬件故障问题。一旦利用多个硬件,相对来说,个别硬件产生故障的几率就高,为了避免数据丢失,最常见的做法便是复制(replication):文件系统保存数据的多个复本,一旦发生故障,就可以利用其余的复本。
2、读取数据的精确性问题。大数据时期的一个剖析任务,就须要结合大部分数据来共同完成剖析,因此从一个硬盘上读取的数据要与从其他99个硬盘上读取的数据结合起来利用。那么,在读取过程中,如何担保数据的精确性,便是一个很大的寻衅。
有人会想,既然利用了多个硬盘,为什么不用配有多个硬盘的关系型数据库来进行数据的存储和剖析呢?实在,这个紧张取决于硬盘发展的一个技能限定,那便是须要寻址操作。我们从关系型数据库中读取数据包含着大量的寻址操作,那么寻址所产生的韶光开销一定会大大的增加,再加上读取数据的韶光,就更加漫长了。还有一个缘故原由,关系型数据库不适宜存储半构造化和非构造化的数据,而这个时期,半构造化和非构造化的数据占90%,而构造化数据只占10%。
针对付上述几个问题,Hadoop为我们供应了一个可靠的且可扩展的存储和剖析平台,此外,由于Hadoop运行在商用硬件上且是开源的,因此Hadoop的利用本钱是比较低了,在用户的承受范围内。
二、Hadoop的简介Hadoop是Apache基金会旗下的一个开源的分布式打算平台,是基于Java措辞开拓的,有很好的跨平台特性,并且可以支配在廉价的打算机集群中。用户无需理解分布式底层细节,就可以开拓分布式程序,充分利用集群的威力进行高速运算和存储。
最初,Hadoop的核心技能是HDFS和MapReduce。
HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称,它具有较高的读写速率,很好的容错性和可伸缩性,为海量的数据供应了分布式存储,其冗余数据存储的办法很好的担保了数据的安全性。
MapReduce是一种用于并行处理大数据集的软件框架(编程模型)。用户可在无需理解底层细节的情形下,编写MapReduce程序进行剖析和处理分布式文件系统上的数据,MapReduce担保了剖析和处理数据的高效性。
因其在分布式环境下供应了高效的,海量的数据的精良处理能力,Hadoop被公认为大数据行业中的标准开源软件。险些所有主流的厂商如谷歌,雅虎,微软,淘宝等等这样的大公司都是环绕Hadoop进行供应开拓工具,开源软件,商业化工具或技能做事的。
在Hadoop2.0往后,又引入了另一个核心技能:YARN(Yet Another Resource Negotiator)。它是一个任务调度和集群资源管理系统,紧张有两类长期运行的守护线程来供应自己的核心做事:一类是用于管理集群上资源利用的资源管理器(Resouce Manager),另一类是运行在集群中各个节点上且能够启动和监控容器(container)的节点管理器(Node Manager)。
发展到现在的Hadoop3.x可以概括成以下五个模块:
Hadoop Common:由原来的Hadoop core更名而来。以前的版本中core包含HDFS、MapReduce及其其他公共部分。后来HDFS和MapReuce被分离出来作为独立的子项目,剩下的公共部分更名为Common。紧张包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为在通用硬件上搭建云打算环境供应基本的做事,并为运行在该平台上的软件开拓供应了所需的API。Hadoop HDFS:Hadoop的核心技能之一,分布式文件系统Hadoop YARN:Hadoop2.0往后新增的一个核心技能,资源管理系统Hadoop MapReduce:Hadoop的核心技能之一,编程模型,用于大规模数据集的并行打算。Hadoop Ozone:HDFS的一个扩展方向,工具存储技能。关于Hadoop这个名字的由来,该项目的创建者Doug Cutting是这样阐明的:“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准便是简短,随意马虎发音和拼写,没有太多的意义,并且不会被用于别处。小孩子正好是这方面的高手。”
Hadoop的发音是 [hædu:p]。
三、Apache Hadoop发展史Hadoop由有名项目Apache Lucene的创始人性格·卡丁(doug Cutting)创建。
它起源于Apache Nutch 项目(一个网页爬取工具和搜索引擎系统,后来碰着大数据量的网页存储问题)。2003年,谷歌揭橥的一篇论文(描述的是“谷歌分布式文件系统”,简称GFS)给了Apache Nutch项目的开拓者灵感。2004年,Nutch的开拓者开始动手 NDFS(Nutch的分布式文件系统)。2004年 ,谷歌又揭橥了一篇先容MapReduce系统的论文。2005年,Nutch项目实现了一个MapReduce系统2006年,开拓职员将NDFS和MapReduce移出Nutch项目形成一个子项目,命名Hadoop2008年,Hadoop已称为Apache的顶级项目。2008年4月,Hadoop冲破天下记录,成为最快排序1TB数据的系统,排序韶光为209秒2009年,Hadoop把1TB数据的排序韶光缩短到62秒。从此名声大噪,现在很多公司都在利用,如雅虎,last.fm,FaceBook,《纽约时报》等等目前Hadoop的版本发展,hadoop1.x > hadoop2.x > hadoop3.x四、Hadoop的特点Hadoop由于是基于Java措辞开拓的,因此最空想的运行平台便是Linux系统了。它也支持多种编程措辞,如C++,PHP等等。
也可以总结出以下优点:
高可靠型。Hadoop按位存储和处理数据的能力值得人们相信。高效性。Hadoop能够在节点之间动态地移动数据,并担保各个节点的动态平衡,因此处理速率非常快,可以处理PB级数据。高可扩展性。Hadoop的设计目标是可以高效的稳定的运行在廉价的打算机集群上,可以扩展到数以千计的打算机节点。高容错性。采取冗余数据存储办法,自动保存数据的多个复本,并且能够自动将失落败的任务进行重新分配本钱低。Hadoop采取廉价的打算机集群,本钱比较低,普通用户也可以利用自己的电脑来搭建Hadoop环境