资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京传智播客教育 ,*,高级软件人才实作培训专家,!,高,高,级,级,软,软,件,件,人,人,才,才,实,实,作,作,培,培,训,训,专,专,家,家!,培,训,训,讲,师,师,:,:,刘,刘,刚,刚,海,量,量,数,数,据,据,处,处,理,理,平,平,台,台,架,架,构,构,一,般,般,网,网,站,站,把,把,用,用,户,户,的,的,访,访,问,问,行,行,为,为,记,记,录,录,以,以,日,日,志,志,的,的,形,形,式,式,记,记,录,录,下,下,来,来,了,了,,,,,这,这,些,些,日,日,志,志,中,中,包,包,含,含,了,了,下,下,面,面,一,一,些,些,关,键,键,字,字,段,段,:,:,因,为,为,需,需,要,要,统,统,一,一,对,对,数,数,据,据,进,进,行,行,离,离,线,线,计,计,算,算,,,,,所,所,以,以,常,常,常,常,把,把,它,它,们,们,全,全,部,部,移,移,到,到,同,同,一,一,个,个,地,地,方,方,。,。,简,单,单,算,算,了,了,一,一,下,下,:,:,(1,),),网,网,站,站,请,请,求,求,数,数,:,:1,天,天,(2,),),每,每,天,天,日,日,志,志,大,大,小,小,:,:450,行,行*1=4.2G,,,,,(3,),),日,日,志,志,存,存,储,储,周,周,期,期,:,:2,年,年,一,天,天,产,产,生,生4.5G,的,的,日,日,志,志,,,,2,年,年,需,需,要,要4.2G*2*365=3.0T,解,决,决,方,方,案,案,:,:,为,了,了,方,方,便,便,系,系,统,统,命,命,令,令,查,查,看,看,日,日,志,志,,,,,不,不,压,压,缩,缩,,,,,总,总,共,共,需,需,要,要3.0T,的,的,空,空,间,间,,,,,刚,刚,好,好,有,有,一,一,些,些2U,的,的,服,服,务,务,器,器,,,,,每,每,台,台,共,共1T,的,的,磁,磁,盘,盘,空,空,间,间,。,。,为,了,了,避,避,免,免,系,系,统,统,盘,盘,坏,坏,掉,掉,影,影,响,响,服,服,务,务,器,器,使,使,用,用,,,,,对,对,系,系,统,统,盘,盘,做,做,了,了1,。,。,为了,避,避免,其,其他,存,存放,数,数据,的,的盘,坏,坏掉,导,导致,数,数据,无,无法,恢,恢复,,,,对,剩,剩下,的,的盘,做,做了5。,所有,的,的数,据,据都,汇,汇聚,到,到这,几,几台,服,服,务,务器,上,上来,了,了。,2,有了,服,服,务,务器,,,,离,线,线统,计,计就,可,可以,全,全部,在,在这,些,些服,务,务器,上,上进,行,行了,。,。在,这,这套,架,架构,上,上,,用,用、,、,、,、,、,等,等,系,系统,命,命令,,,,完,成,成了,很,很多,的,的统,计,计需,求,求,,比,比如,统,统计,访,访问,频,频率,较,较高,的,的,,某,某个,新,新上,线,线的,的,的页,面,面的,主,主,要,要是,哪,哪些,网,网站,。,。,当业,务,务的,迅,迅猛,发,发展,,,,网,站,站流,量,量爆,发,发增,长,长,,产,产品,经,经理,如,如果,想,想从,中,中获,取,取更,多,多的,用,用户,特,特征,和,和用,户,户信,息,息,,就需,要,要我,们,们这,些,些数,据,据分,析,析人,员,员从,不,不同,的,的日,志,志中,找,找到,令,令他,们,们满,意,意的,答,答案,。,。如,果,果,(1,),),日,日志,总,总行,数,数:10,亿,亿/天,(2,),),每,每天,日,日志,大,大小,:,:450,行,行*10,亿,亿=420G,,(3,),),日,日志,种,种类,:,:5,种,种,3,能解,决,决哪,些,些问,题,题,海量,数,数据,需,需要,及,及时,分,分析,和,和处,理,理。,海量,数,数据,需,需要,深,深入,分,分析,和,和挖,掘,掘。,数据,需,需要,长,长期,保,保存,问题,:,:,磁盘,成,成为,一,一种,瓶,瓶颈,而,非,非资,源,源。,网络,带,带宽,是,是一,种,种稀,缺,缺资,源,源,硬件,故,故障,成,成为,影,影响,稳,稳定,的,的一,大,大因,素,素,在国,内,内的,情,情景,奇虎360:,存,存储,软,软件,管,管家,中,中软,件,件,,使,使用,技,技术,将,将用,户,户请,求,求引,到,到最,近,近的,集,集群,并,并进,行,行下,载,载,京东,、,、百,度,度:,存,存储,、,、分,析,析日,志,志、,数,数据,挖,挖掘,和,和机,器,器学,习,习(,主,主要,是,是推,荐,荐系,统,统),广告,类,类公,司,司:,存,存储,日,日志,,,,通,过,过协,调,调过,滤,滤算,法,法为,客,客户,推,推荐,广,广告,:垃,圾,圾邮,件,件过,滤,滤,华为,:,:云,计,计算,平,平台,:日,志,志存,储,储,,实,实时,分,分析,某公,安,安部,项,项目,:,:网,民,民聊,天,天记,录,录与,关,关联,人,人调,查,查系,统,统,,使,使用,实,实现,某学,校,校:,学,学生,上,上网,与,与社,会,会行,为,为分,析,析,,使,使用,淘宝,、,、阿,里,里:,国,国内,使,使用,最,最深,入,入的,公,公司,,,,整,个,个和,阿,阿里,都,都是,数,数据,驱,驱动,的,的,开发,人,人员,市,市场,需,需求,和,和待,遇,遇,在国,内,内的,人,人才,储,储备,介绍,1),作,作者,:,:,2),用,用编,写,写的,开,开源,系,系统,,,,能,够,够安,排,排在,大,大规,模,模的,计,计算,平,平台,上,上,,从,从而,长,长进,计,计算,效,效率,。,。,3)搜,索,索引擎,里,里面的,一,一个模,块,块。,4)受,三,三篇论,文,文的启,发,发,5),生态系,统,统介绍,1)数,据,据库,,存,存储,2)最,大,大化利,用,用内存,1),分,分布式,文,文件系,统,统,2)最,大,大化利,用,用磁盘,1)编,程,程模型,,,,主要,用,用来做,数,数据的,分,分析,2)最,大,大化利,用,用,篇,设计原,则,则,文件以,块,块(),方,方式存,储,储,每个块,带,带下远,比,比多数,文,文件系,统,统来的,大,大(预,设,设64M),通过副,本,本机制,提,提高可,靠,靠度和,读,读取吞,吐,吐量,每个区,块,块至少,分,分到三,台,台上,单一(),来,来协调,存,存储元,数,数据(),客户端,对,对文件,没,没有缓,存,存机制(),系统结,构,构,(),主要功,能,能提供,名,名称查,询,询服务,,,,它是,一,一个服,务,务器,保存信,息,息包括,文件和,文件包,含,含哪些,块,块,保存在,哪,哪个(,由,由启动,时,时上报,),),的信息,在,在启动,后,后会加,载,载到内,存,存,存储到,磁,磁盘文,件,件名为,”,”,的位置,信,信息不,会,会保存,到,到,块存储,结,结构,物理存,储,储结构,(),保存,启动线,程,程的时,候,候会向,汇,汇报信,息,息,通过向,发,发送心,跳,跳保持,与,与其联,系,系(3,秒,秒一次,),),如,果,果 10分钟,没,没有收,到,到的心,跳,跳,则,认,认为其,已,已经,,并,并其上,的,的到其,它,它,的副本,放,放置策,略,略,第一个,副,副本:,放,放置在,上,上传文,件,件的;,如,如果是,集,集群外,提,提交,,则,则随机,挑,挑选一,台,台磁盘,不,不太满,,,,不太,忙,忙的节,点,点,第二个,副,副本:,放,放置在,于,于第一,个,个副本,不,不同的,机,机架的,节,节点上,第三个,副,副本:,与,与第二,个,个副本,相,相同集,群,群的节,点,点,更多副,本,本:随,机,机节点,再说,设置一,个,个 64,如,果,果上传,文,文件小,于,于该值,,,,仍然,会,会占用,一,一个的,命,命名空,间,间(,),),但,是,是物理,存,存储上,不,不会占,用,用64,的,的空间,大小和,副,副本数,由,由端上,传,传文件,到,到时设,置,置,其,中,中副本,数,数可以,变,变更,,是,是不可,以,以再上,传,传后变,更,更的,数据损,坏,坏(),处,处理,当读取,的,的时候,,,,它会,计,计算,如果计,算,算后的,,,,与创,建,建时值,不,不一样,,,,说明,该,该已经,损,损坏。,读取其,它,它上的,;,;标记,该,该块已,经,经损坏,,,,然后,复,复制达,到,到预期,设,设置的,文,文件备,份,份数,在其文,件,件创建,后,后三周,验,验证其,文件权,限,限,与文件,权,权限类,似,似,r:; ;,,,,权,限,限x对,于,于文件,忽,忽略,,对,对于文,件,件夹表,示,示是否,允,允许访,问,问其内,容,容,如果系,统,统用户,使,使用命,令,令创建,一,一个文,件,件,那,么,么这个,文,文件在,中,中就是,的权限,目,目的:,阻,阻止好,人,人错错,事,事,而,不,不是阻,止,止坏人,做,做坏事,。,。相信,,,,你告,诉,诉我你,是,是谁,,我,我就认,为,为你是,谁,谁,19,文件读,取,取,文件写,入,入,文件存,储,储,两个文,件,件,一,个,个文件156M,一,个,个文件128,在,在里面,怎,怎么存,储,储?,为64,默认拷,贝,贝3份,文件存,储,储结构,开发常,用,用命令,创建一,个,个文件,夹,夹?,上传一,个,个文件,?,?,删除一,个,个文件,和,和文件,夹,夹?,查看一,个,个文件,夹,夹里面,有,有哪些,文,文件?,查看某,个,个文件,的,的内容,?,?,管理员,常,常用命,令,令,#列出,正,正在运,行,行的, ,/ #,检,检查块,状,状态,,是,是否损,坏,坏,/#检查,块,块状态,,,,删除,损,损坏块, #,检,检查状,态,态,包,括,括信息,|,:8020:8020#并行,#平衡,集,集群文,件,件,详解,( ),(),1,得到对,象,象,2,得到对,象,象,3,进行文,件,件操作,用对编,程,程,文件操,作,作,1.1,上,上,传,传本地,文,文件到,1.2,在,在,中,中新建,文,文件,,并,并写入,1.3,删,删除,上,上的,文,文件,1.4,读,读,取,取文件,1.5,文,文件,修,修改时,间,间,2.,目,目录操,作,作,2.1,在,在,上,上创建,目,目录,2.2,删,删除,目,目录,2.3,读,读取,某,某个目,录,录下的,所,所有文,件,件,2.4,遍,遍历,信息,查找某,个,个文件,在,在集群,的,的位置,获取集,群,群上所,有,有节点,名,名称信,息,息,篇,开发依赖的,和,和自带的,到 下载0.20.2,,,,目前最新,版,版为1.0.3。下载,完,完后解压文,件,件有0.20.2,0.20.2,0.20.2 的核心,类,类库,所依赖的:,所依赖的在,目,目录下面。,自带的一些,案,案例分析:,0.20.2是0.20.2自带,的,的一些案例,。,。介绍如下,:,:,1),计算输入文,件,件中文字个,数,数的基于聚,合,合的程序。,2),生成输入文,件,件中文字个,数,数的统计图,的,的基于聚合,的,的程序。,3),计算输入文,件,件中匹配正,则,则表达式的,文,文字个数的,程,程序。,4),合并排序的,平,平均分割的,数,数据集的作,业,业。,5),解决五格拼,版,版问题的分,块,块分层的程,序,序。,自带的介绍,6),使用蒙地卡,罗,罗法计算的,程,程序。,7),在一个节点,上,上写10G,随,随机文本的,程,程序。,8),在每个节点,上,上写10G,随,随机数据的,程,程序。,9),在每个和作,业,业中休憩的,程,程序。,10),排序随机写,入,入器生成的,数,数据的程序,。,。,11),一个九宫格,游,游戏的解决,方,方案。,12),在输入文件,中,中统计文字,个,个数的统计,器,器。,实例,写程序的步,骤,骤:,1.把问题,转,转化为模型,2.设置运,行,行的参数,3.写类,4.写类,例子:统计,单,单词个数,1,2,2,1,1,1,1,模型,1端,一行行读文,件,件,程序转,化,化为中间.,- 11, 1, 1,1,- 1,1,1 1,2端,相同的肯定,会,会在一起。,经,经过方法处,理,理后,,形成最终的.,1 1-2;,运行步骤,1)打成包,。,。,2)创建一,个,个文件,3)把文件,传,传到上面, ,4)执行,5)查看执,行,行结果,执行流程,基本流程,35,()和(),简,简介,再论()和(),:协作作业,的,的运行,:运行作业,划,划分后的任,务,务,原理,1)一个文,件,件,2)存储文,件,件,3) 统计,文,文件里面”,”,”个数,失败,1)失败在,所,所有的失败,中,中是最严重,的,的一种。,2)没有处,理,理失败的机,制,制。它是一,个,个单点故障,。,。,3)在未来,的,的新版本中,可,可能可以运,行,行多个。,4)可以使,用,用来协作。,失败,1)一个由,于,于崩溃或运,行,行过于缓慢,而,而失败,它,会,会向发送“,心,心跳”。,2)如果有,未,未完成的作,业,业,会重新,把,把这些任务,分,分配到其他,的,的上面运行,。,。,3)即使没,有,有失败也可,以,以被列入黑,名,名单。,1)默认的,调,调度器是基,于,于队列的调,度,度器。,所有用户的,作,作业都被提,交,交到一个队,列,列中,然后,由,由先按照作,业,业的优先级,高,高低,再按,照,照作业提交,时,时间的先后,顺,顺序选择将,被,被执行的作,业,业。优点: 调度算,法,法简单明了,,,,工作负担,轻,轻。缺点: 忽略了,不,不同作业的,需,需求差异。,2)还用两,个,个多用户调,度,度器,(公平调度,器,器),(计算能力,调,调度),(公平调度,器,器),多个,需要,被,被提交到某,个,个中,每个可以设,置,置最小,,,,称为,会保证的公,平,平,内部支持设,置,置,支持资源抢,占,占,的类型与格,式,式,0.20之,前,前的,的中,和函,数,数遵循如下,常,常规格式:,: (K1, V1), (K2, V2),: (K2, (V2) (K3,V3),的接口:,(K1, V1, , ),;,的接口:,(K2, ,) ;,是为了输,出,出对,,是用来更,新,新计数和,状,状态信息,。,。,0.20,之,之后的,的中,和,函,函数遵循,如,如下常规,格,格式:,: (K1, V1) (K2, V2),: (K2, (V2), (K3,V3),的接口:,( ,) ,的接口:,( , ,) ,是上下文,对,对象,这,里,里等同于,和,和两个函,数,数的功能,。,。,的数据类,型,型与类型,对,对应关系,接口,1.对中,的,的型进行,封,封装那么,就,就是中的,类,类,在写程序,时,时可以把,可,可以看着,是,是 类型,,,,它实现,了接口。,又,又是、,接,接口的子,接,接口。,2类对所,有,有的基本,类,类型进行,封,封装:,如,如:-,3. 我,们,们可以自,定,定义接口,,,,来编写,更,更复杂的,结,结构的类,。,。,核心:有,自,自己一套,的,的机制。,类,类都必须,实,实现接口,。,。,实现自定,义,义的类型,;,;,;,( ),= ();,= ();,= ();,( ),();,();,();,当我们在,实,实际开发,的,的时候会,遇,遇到多个,的,的时候,,自,自带的类,型,型是不能,满,满足我们,的,的需求,,这,这样我们,就,就要自己,来,来定制化,和,和。,47,最小的驱,动,动,(),= (,(),);,( ),-1;,();,(1);,();,();,();,();,();,(1);,();,();,();,();,();,0;,(),= (),);,();,48,驱动默认,的,的设置,和编程,的作用:,每一个可,能,能会产生,大,大量的输,出,出,的作,用,用就是在,端,端对输出,先,先做一次,合,合并,以,减,减少传输,到,到的数据,量,量,,1)最基,本,本是实现,本,本地的聚,合,合,对输,出,出的排序,,,,进行迭,代,代。如下,所,所示:: (K1, V1) (K2, V2):(K2, (V2), (K2, V2): (K2, (V2), (K3,V3),2)还具,有,有类似本,地,地的功能.例如,自,自带的的,例,例子和找,出,出的最大,值,值的程序,,,,和完全,一,一致。如,下,下所示:: (K1,V1), (K2, V2): (K2, (V2), (K3,V3): (K3,(V3) (K4,V4),3)如果,不,不用,那,么,么,所有,的,的结果都,是,是完成,,效,效率会相,对,对低下。,使,使用,先,完,完成的会,在,在本地聚,合,合,提升,速,速度。,4)对于,自,自带的的,例,例子,就,是,是一个叠,加,加的数字,,,,所以一,结,结束就可,以,以进行的,叠,叠加,而,不,不必要等,到,到所有的,结,结束再去,进,进行的叠,加,加。,注意:使,用,用的合适,,,,可以在,满,满足业务,的,的情况下,提,提升的速,度,度,如果,不,不合适,,则,则将导致,输,输出的结,果,果不正确,。,。,的输出是,的,的输入,,绝,绝不能改,变,变最终的,计,计算结果,。,。所以从,我,我的想法,来,来看,只,应,应该用于,那,那种的输,入,入与输出,类,类型完全,一,一致,且,不,不影响最,终,终结果的,场,场景。比,如,如累加,,最,最大值等,。,。,分析,假设有两,个,个。,第一个的,输,输出为:,(1950,0),(1950,20),(1950,10),第二个输,出,出为:,(1950,25,),),(1950,15),(1950,30),函数被调,用,用是,输,入,入如下:,(1950,0,20,10,25,15,30,),),因为30,是,是最大的,值,值,所以,输,输出如下,:,:,(1950,30,),),如果我们,使,使用 :,那,那么调用,的,的时候传,入,入的数据,如,如下:,(1950,20,30)(1950,30),用表达式,表,表示为:,(0,20,10,25,15,30)(0,20,10)(25,15,30)(20,30)=30,使用 要,小,小心,刚才我们,是,是计算最,大,大值可以,使,使用能提,高,高效率。,如果我们,要,要是求平,均,均值呢?,(0,20,10,25,15,30) =15,如果使用,会,会得到什,么,么样的结,果,果呢?,第一个输,出,出为:,(0,20,10) =10,第二个输,出,出为:,(25,15,30) =23,输入到出,来,来的结果,为,为:,(10,23)= 17.5,17.5,和,和15?,所以 :,使,使用一定,要,要注意。,分析,在的位置,:,:,提供的,主要作用,就,就是将的,结,结果发送,到,到相应的,。,。这就对,有,有两个要,求,求:,1)均衡,负,负载,尽,量,量的将工,作,作均匀的,分,分配给不,同,同的。,2)效率,,,,分配速,度,度一定要,快,快。,提供的,是的基类,,,,如果需,要,要定制也,需,需要继承,该,该类。,2.,是,是的默认,。,。计算方,法,法是,()& )% ,得,到,到当前的,目,目的。,继承于,,是,是的偏特,化,化子类。,该,该类提供,和,和,在计,算,算 时仅,对,对键值K,的,的,,这,这个区间,取,取。,( &) %,也是基于,的,的个。和,不,不同,它,提,提供了多,个,个区间用,于,于计算。,当,当区间数,为,为0时退,化,化成。,5.,这,这个,类,类可以实,现,现输出的,全,全排序。,不,不同于以,上,上3个,,这,这个类并,不,不是基于,的,的。在下,一,一节里详,细,细的介绍,。,。,自定义的Partitioner,1,)为何使,用,用,Partitioner,,主要是,想,想,reduce,的结果能,够,够根据,key,再次分类,输,输出到不,同,同的文件,夹,夹中。,2,)结果能,够,够直观,,同,同时做到,对,对数据结,果,果的简单,的,的统计分,析,析。,需求:,1,、输入的,数,数据文件,内,内容如下,(1,条数据内,容,容少,,1,条数据内,容,容超长,,3,条数据内,容,容正常,),:,Kaka128,hua0 26,chao1,tao122,mao02922,2,、目的是,为,为了分别,输,输出结果,,,,正确的,结,结果输出,到,到一个文,本,本,太短,的,的数据输,出,出到一个,文,文本,太,长,长的输出,到,到一个文,本,本,共三,个,个文本输,出,出。,Patitioner,接口:,public int getPartition(Textkey, Text value, int numPartitions),;,numPartitions,为,Reduce,的个数。,注:在本,地,地作业运,行,行器上运,行,行时,只,支,支持,0,个,或,或,一,一,个,个,Reduce,。,演讲完毕,,谢,谢谢观看!,
展开阅读全文