资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,大数据问题,纽约证券交易所每天产生,1TB,的交易数据,社交网站,facebook,的主机存储着约,10,亿张照片,占据,PB,级存储空间,互联网档案馆存储着约,2PB,数据,并以每月至少,20TB,的速度增长。,瑞士日内瓦附近的大型强子对撞机每年产生约,15PB,的数据,这么大的数据该怎么存储和读取?,传统关系型,数,数据库(oracle,),)的成本,Facebook,的服务器大,概,概,1,万台,按照,oracle,的标准,10g,版本计算大,约,约需要,21,亿元,Hadoop简介,Hadoop,一个分布式,系,系统基础架,构,构,由,Apache,基金会开发,。,。用户可以,在,在不了解分,布,布式底层细,节,节的情况下,,,,开发分布,式,式程序。充,分,分利用集群,的,的威力高速,运,运算和存储,。,。,由,HDFS,、,MapReduce,、,HBase,、,Hive,和,ZooKeeper,等成员组成,。,。其中,,HDFS,和,MapReduce,是两个最基,础,础最重要的,成,成员。,HDFS,是,Google GFS,的开源版本,,,,一个高度,容,容错的分布,式,式文件系统,,,,它能够提,供,供高吞吐量,的,的数据访问,,,,适合存储,海,海量(,PB,级)的大文,件,件(通常超,过,过,64M,),其原理,如,如图所示,:,:,Hadoop优点,可扩展:不,论,论是存储的,可,可扩展还是,计,计算的可扩,展,展都是,Hadoop,的设计根本,。,。,经济:框架,可,可以运行在,任,任何普通的,PC,上。,可靠:分布,式,式文件系统,的,的备份恢复,机,机制以及,MapReduce,的任务监控,保,保证了分布,式,式处理的可,靠,靠性。(元数据磁,盘,盘错误,心,跳,跳测试,副,本,本数,快照,(,(目前还没,实,实现),高效:分布,式,式文件系统,的,的高效数据,交,交互实现以,及,及,MapReduce,结合,LocalData,处理的模式,为高效处,理,理海量的信,息,息作了基础,准,准备。,Hadoop在国内的,分,分布情况,Hadoop作业调度,默认调度算,法,法,FIFO,公平份额调,度,度算法,FairScheduler,计算能力调,度,度算法,Capacity Scheduler,作业调度总,结,结,默认调度算,法,法FIFO,简介,最早的,Hadoop Map/Reduce,计算架构中,,,,,JobTracker,在进行作业,调,调度时使用,的,的是,FIFO(FirstIn FirstOut),算法。所有,用,用户的作业,都,都被提交到,一,一个队列中,,,,然后由,JobTracker,先按照作业,的,的优先级高,低,低,再按照,作,作业提交时,间,间的先后顺,序,序选择将被,执,执行的作业,。,。,优点,调度算法简,单,单明了,,JobTracker,工作负担轻,。,。,缺点,忽略了不同,作,作业的需求,差,差异。例如,如,如果类似对,海,海量数据进,行,行统计分析,的,的作业长期,占,占据计算资,源,源,那么在,其,其后提交的,交,交互型作业,有,有可能迟迟,得,得不到处理,,,,从而影响,到,到用户的体,验,验。,新的调度算,法,法,当前,新的,调,调度器已经,作,作为插件的,形,形式集成在,Hadoop,当中。,公平份额调,度,度算法Fair Scheduler,FairScheduler,提出背景,FairScheduler,基础知识,FairScheduler,两个关键问,题,题,FairScheduler,的配置,FairScheduler提,出,出背景,提出背景,Facebook,要处理生产,型,型作业,(,数据统计分,析,析,hive),、大型批处,理,理作业,(,数据挖掘、,机,机器学习,),、小型交互,型,型作业,(hive,查询,),。,不同用户提,交,交的作业在,计,计算时间、,存,存储空间、,数,数据流量和,响,响应时间上,都,都有不同需,求,求。,为使,hadoop mapreduce,框架能够应,对,对多种类型,作,作业并行执,行,行,使得用,户,户具有良好,的,的体验,,Facebook,公司提出该,算,算法。,FairScheduler基,础,础知识,设计思想,尽可能保证,所,所有的作业,都,都能够获得,等,等量的资源,份,份额。系统,中,中只有一个,作,作业执行时,,,,它将独占,集,集群所有资,源,源。有其他,作,作业被提交,时,时就会有,TaskTracker,被释放并分,配,配给新提交,的,的作业,以,保,保证所有的,作,作业都能够,获,获得大体相,同,同的计算资,源,源。,作业池,用户提交的,作,作业将会放,进,进一个能够,公,公平共享资,源,源的,pool(,池,),中。,每个作业池,设,设定了一个,最,最低资源保,障,障,(a guaranteed minimum share),,当一个池,中,中包含,job,时,它至少,可,可以获得,minimum share,的资源,最低保障资,源,源份额机制,。,。,池中的作业,获,获得一定份,额,额的资源。,可以通过配,置,置文件限制,每,每个池中的,作,作业数量。,缺省情况下,,,,每个作业,池,池中选择将,要,要执行的作,业,业的策略是,FIFO,策略,先按,照,照优先级高,低,低排序,然,后,后再按照提,交,交时间排序,。,。,FairScheduler基,础,础知识,作业和作业,池,池的权值,weight,缺省情况下,,,,,FairScheduler,会为每一个,用,用户建立一,个,个单独的,pool,。所有用户,能,能够获得等,量,量的资源份,额,额而无论他,提,提交了多少,作,作业,而每,个,个,pool,中,各个作,业,业将平分分,配,配给所在池,的,的资源。,实际应用中,,,,无论是作,业,业池还是作,业,业,都被赋,予,予一定的权值,并以此为,依,依据获得相,应,应比例的资,源,源。这种情,况,况下,作业,池,池和作业在,资,资源分配时,不,不是严格的,平,平均分配,,但,但这有利于,根,根据作业的,重,重要程度及,实,实际需求合,理,理分配资源,。,。,FairScheduler两,个,个关键问题,如何选择合,适,适的作业执,行,行,默认是,FIFO,策略,此外,还,还有一种基,于,于缺额的策,略,略。,FairScheduler,为每个作业,定,定义了一个,deficit(,缺额,),指标。,Deficit,是一个作业,在,在理想情况下,的,的获得的计,算,算资源和实,际,际中获得的,计,计算资源之,间,间的差距。,FairScheduler,会每隔几百,毫,毫秒观察每,个,个作业中有,多,多少任务已,经,经在这个时,间,间间隔内执,行,行,并将结,果,果与它应得,的,的资源份额,比,比较,以更,新,新该作业的,deficit,值。一旦有,空,空闲的,tasktracker,出现,首先,分,分配给当前,具,具有最高,deficit,值的作业。,例外,如果系统中,存,存在着尚未,获,获得最低资,源,源保障的作,业,业池,那么,该,该池中的作,业,业将会优先,调,调度,而选,择,择池中的作,业,业需要根据,它,它们的,deficit,来决定。这,样,样做是为了,尽,尽可能满足,作,作业池最低,保,保障资源份,额,额的机制。,FairScheduler两,个,个关键问题,如何确定每,个,个作业的资,源,源份额,缺省情况是,平,平分资源,,此,此外提供一,种,种基于权值,的,的资源分配,方,方法。,作业资源份,额,额的计算是,根,根据作业的,权,权值将集群,的,的资源总量,划,划分给各个,可,可以运行的,作,作业。,默认情况下,,,,权值基于,作,作业优先级,,,,每个优先,级,级对应的权,值,值是低一个,优,优先级的,2,倍,(,优先级共有,VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW,五个等级,,则,则,VERY_HIGH,具有,4,倍,NORMAL,的权值,),。,作业和作业,池,池的权值可,以,以在池配置,文,文件中进行,设,设定,例如,可,可以基于作,业,业的大小和,提,提交时间来,设,设定。,作业池的最,低,低资源保障,也,也是按照权,值,值比例分配,给,给其中的作,业,业。,计算能力调,度,度CapacityScheduler,Capcity Scheduler,基础知识,Capcity Scheduler,一个关键问,题,题,Capcity Scheduler,内存管理,Capcity Scheduler,的配置,Capcity Schedule基础知识,基础知识,Capacity Scheduler,是由雅虎提,出,出的作业调,度,度算法,它,提,提供了类似,于,于,FairScheduler,算法的功能,。,。,Capacity Scheduler,中可以定义,多,多个作业队,列,列,(multiplequeues),,作业提交,时,时将直接放,入,入到一个队,列,列中。,每个队列都,可,可以通过配,置,置获得一定,数,数量的,tasktracker,资源用于处,理,理,map/reduce,操作,调度,算,算法将按照,配,配置文件为,队,队列分配相,应,应的计算资,源,源量。,对于已经分,配,配给了某队,列,列但处于空,闲,闲的资源各,个,个“忙”的,队,队列会分享,它,它们。当某,一,一队列没有,能,能够按照配,置,置的数量值,获,获得足够资,源,源但是它的,作,作业压力增,加,加了时,之,前,前那些曾分,配,配给它但又,由,由于之前空,闲,闲被别的队,列,列所占用了,的,的资源会在,完,完成当前,task,后立即分配,给,给回应属的,队,队列。,Capcity Schedule基础知识,基础知识,Capacity Scheduler,的每个队列,中,中采用的调,度,度策略是,FIFO,算法。,Capacity Scheduler,默认情况下,不,不支持优先,级,级,但是可,以,以在配置文,件,件中开启此,选,选项,如果,支,支持优先级,,,,调度算法,就,就是带有优,先,先级的,FIFO,。,Capacity Scheduler,不支持优先,级,级抢占,一,旦,旦一个作业,开,开始执行,,在,在执行完之,前,前它的资源,不,不会被高优,先,先级作业所,抢,抢占。,Capacity Scheduler,对队列中同,一,一用户提交,的,的作业能够,获,获得的资源,百,百分比进行,了,了限制以使,同,同属于一用,户,户的作业不,能,能出现独占,资,资源的情况,。,。,Capcity Scheduler一个关,键,键问题,如何选择合,适,适的作业去,执,执行,为队列定义,了,了一个指标,队列中正在,运,运行的任务,数,数与其应该,分,分得的计算,资,资源,(,配置文件中,为,为此队列分,配,配了相应数,量,量的资源,,而,而实际中该,队,队列可能没,有,有分配到,),之间的比值。当系统中,出,出现空闲的,tasktracker,,算法会首,先,先选择一个,该,该比值最低,的,的队列。,队列被选中,后,后,将按照,作,作业优先级,(,如果支持的,话,话,),和提交时间,顺,顺序选择执,行,行的作业。,在选择作业,的,的时候,还,需,需要考虑作,业,业所属的用,户,户是否已经,超,超出了他所,能,能使用的资,源,源限制。,此外,还会,考,考虑,tasktracker,内存资源是,否,否
展开阅读全文