脚本宝典收集整理的这篇文章主要介绍了04,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Hadoop是一个由apache基金会所开发的分布式系统基础架构。Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一 。2004年,GOOGLE在“操作系统设计与实现”(operating System Design and Implementation,OSDI)会议上公开发表了题为Mapreduce:Simplified Data PRocessing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法 [ 。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,hadoop已成为Apache的顶级项目,包含众多子项目,被应用到包括Yahoo在内的很多互联网公司。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。HadooP实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)posix的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
Google与Hadoop的关系:
第一篇论文:GFS
2003年谷歌发表了 “The Google File System(谷歌文件系统,简称GFS)”的论文,GFS的架构能够满足在网页爬取和索引过程中产生的超大文件的存储需求。于是,在2004年Nutch团队开始做GFS的开源版本实现,也就 是Nutch分布式文件系统(NDFS)。
第二篇论文:MapReduce
2004年谷歌发表了“MapReduce:Simplified Data Processing on Large Cluster(大型集群的数据简化处理)”的论文。2005年,Nutch团队在Nutch上实现了MapReduce。
2006年2月,Nutch开发人员将NDFS和MapReduce移除Nutch形成一个独立的项目,命名为Hadoop。这个名字不是缩写,是生造出来的。
第三篇:BigTable
2006年谷歌发表了“BigTable:A Distributed Storage System for Structured Data(一个结构化数据的分布式存储系统)”的论文。Powerset公司根据BigTable的思想,发起了HBase,即Hadoop Database。
2008年1月,Hadoop成为Apache的顶级项目。背后主要的公司为雅虎,主要用Hadoop来支撑雅虎的搜索引擎系统。
2013年 Hadoop 2.0发布
2017年 Hadoop 3.0 发布
在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。
在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。
Hadoop3.x在组成上没有变化。
(1)Hadoop 1.0
Hadoop 1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JoBTracker和多个TaskTracker组成。
Hadoop1.X对应HadooP版本为Apache Hadoop 0.20.x、1.x、0.21.X、0.22.x和CDH3。
hadoop1.0需要解决的几个问题:
1:单点故障问题,HDFS和MapReduce都是Master-slave的结构,但是Master节点都是单点,一旦出现故障,那么集群就不能正常运行。
2:HDFS存储海量数据是按照Block来存储的,整个存储只有一种格式,企业存储受限,企业的数据非常多样,存储起来容易造成资源的浪费。
当namenode所在机器的内存不够时,集群不能正常工作。
3:MapReduce进行离线的批处理,处理速度慢,以Map和Reduce进程的方式来运行,一般是晚间来进行计算,MapReduce集群资源利用率低。
(2)Hadoop 2.0
Hadoop 2.0即第二代Hadoop,为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题而提出的。针对Hadoop 1.0中的单NameNode制约HDFS的扩展性问题,提出了HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时它彻底解决了NameNode 单点故障问题;针对Hadoop 1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager和ApplicationMaster实现。其中,ResourceManager负责所有应用程序的资源分配,而ApplicationMaster仅负责管理一个应用程序,进而诞生了全新的通用资源管理框架YARN。基于YARN,用户可以运行各种类型的应用程序(不再像1.0那样仅局限于MapReduce一类应用),从离线计算的MapReduce到在线计算(流式处理)的Storm等。
Hadoop 2.0对应Hadoop版本为Apache Hadoop 0.23.x、2.x和CDH4。
1. Hadoop 3.0简介
Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。
Hadoop 3.0的alpha版已经在今年夏天发布,预计GA版本11月或12月发布。
Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
2. Hadoop 3.0新特性
Apache hadoop 项目组最新消息,hadooP3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。
其实最大改变的是hdfs,hdfs 通过最近black块计算,根据最近计算原则,本地black块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果。
Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:
2.1 Hadoop Common
(1)精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现(比如将FileOutputCommITter缺省实现换为v2版本,废除hftp转由webhdfs替代,移除Hadoop子实现序列化库org.apache.hadoop.Records。
(2)Classpath isolation以防止不同版本jar包冲突,比如google Guava在混合使用Hadoop、HBase和Spark时,很容易产生冲突。(3)Shell脚本重构。 Hadoop 3.0对Hadoop的管理脚本进行了重构,修复了大量bug,增加了新特性,支持动态命令等。
2.2 Hadoop HDFS
(1)HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。 (2)多NameNode支持,即支持一个集群中,一个active、多个standby namenode部署方式。注:多ResourceManager特性在hadoop 2.0中已经支持。
2.3 Hadoop MapReduce
(1)Tasknative优化。为MapReduce增加了C/C++的map output collector实现(包括Spill,Sort和IFile等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。 (2)MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是“-XMx2g”,则剩余2g实际上无法让java heap使用到。
2.4 Hadoop YARN
(1)基于cgroup的内存隔离和IO disk隔离(2)用curator实现RM leader选举
(3)containerresizing(4)Timelineserver next generation
3. Hadoop3.0 总结
Hadoop 3.0的alpha版已经在今年夏天发布,预计GA版本11月或12月发布。Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
以上是脚本宝典为你收集整理的04全部内容,希望文章能够帮你解决04所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。