基于Hadoop分布式文件系统的分析与研究.doc

上传人:土8路 文档编号:10155811 上传时间:2021-04-24 格式:DOC 页数:11 大小:23KB
返回 下载 相关 举报
基于Hadoop分布式文件系统的分析与研究.doc_第1页
第1页 / 共11页
基于Hadoop分布式文件系统的分析与研究.doc_第2页
第2页 / 共11页
基于Hadoop分布式文件系统的分析与研究.doc_第3页
第3页 / 共11页
基于Hadoop分布式文件系统的分析与研究.doc_第4页
第4页 / 共11页
基于Hadoop分布式文件系统的分析与研究.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于Hadoop分布式文件系统的分析与研究.doc》由会员分享,可在线阅读,更多相关《基于Hadoop分布式文件系统的分析与研究.doc(11页珍藏版)》请在三一文库上搜索。

1、基于Hadoop分布式文件系统的分析与研究2011年第9期计算机光盘软件与应用ComputerCDSoftwareandApplications软件设计开发基于Hadoop分布式文件系统的分析与研究王跃(中海油气电集团国际贸易公司,北京100027)摘要:通过对HDFS(Hadoop的一个分布式文件系统)以N.Map/Reduce数据驱编程模型和HBase分布式的,列存储数据库和Hive分布式数据仓库的分析.可以得到Hado0p的优势在于能以批处理模式处理PB级以上的数据集,适合做离线的数据分析,不适合实时响应需求,如股票系统.客户端是打包成AR文件形式,运行于Hadoop命令行界面,可以定制

2、执行策略,当数据到来的时候运行Map/Reduce程序,可以手动执行也可以定时执行.可以用Map/Reduce作为BI等海量数据分析平台的分布式数据处理引擎,HDFS作为底层存储文件系统.关键词:Hadoop;Map/Reduce;HDFS;云计算中图分类号:TP393文献标识码:A文章编号:10079599(2011)09016102AnalysisandResearchHad00pbasedDistributedFileSystemWangYue(CNOOCGas&PowerGroupInternationalTradeCorporation,Beijing100027,China

3、)Abstract:ThroughtheHDFS(HadoopDistributedFileSystem),andMap/ReducedatadrivenprogrammingmodelandHBasedistributed,columnstoredatabaseandHiveDistributedData,varehouseanalysisandcomparison.HadoophastheadvantageCanbeab1etodealwithPBabovebatchmodedataset.suitableforoffiinedataanalysis.isnotsuitableforrea

4、ltimeresponserequirements.suchasstocksystem.TheclientsideiSpackagedintoaJARfileformats.runningonHadoopcommandlineinterface,customercancustomizetheimplementationstrategy,whenthedatacomeswhichMap/Reduceprocessbegintonmningtimelyormanually.UseHbaseasdatastorageandaccess.ratherthandirectuseofHDFS.UseMap

5、/Reducemassivedataanab,sissuchastheBIplatformfordistributeddataprocessingengine,HDFSastheunderlyingstoragefilesystem.Keywords:Hadoop;Map/Reduce;HDFS;Cloudcomputing一,引言(一)Hadoop简介纽约证券交易所,每天产生1TD的交易数据,着名社交网站Facebook,主机存储着约100亿张照片,占据PB级存储空间.A,一个家谱网站,存储着2.5PB数据,互联网档案馆(TheInternetArchive),存储着约2PB数据,并以每月至

6、少20TB的速度增长.读取速度和时间如下表:时间传输速度(访问速度)读取全部数据所需时间1990纽4.4粕/s5分钟2010焦lOOMB/S2.5小时以上问题:怎样存储和分析这些海量数据,如何保证数据访问速度?解决办法:在多个磁盘上并行读写数据.硬件故障需要考虑,通过某种方式把数据合并起来,如何保证数据的正确性.于是Hadoop就在这种情况下产生,Hadoop提供了一个稳定的共享存储和分析系统,存储由HDFS实现,分析由MapReduce实现.在整个集群当中,文件由hadoopblock负责存储,并作为Map/Reduce架框的输入数据来源,Map/Reduce会根据文件大小和Block大小决

7、定生成多少个splits,因而决定生成多少个Map任务,并且Map任务会根据splits来获得记录迭代器,从而读取记录并生成key/value对来调用自定义map函数,此过程是不断循环的直到读完所有数据为止.默认为一个reduce任务,所有Map任务的输出都是输入给reduce任务,以这种串行的方式处理数据,实际使用时,应根据配置灵活设置reduce任务以获得效率.二,Hadoop工作原理(一)HDFS架构(HadoopDistributedFileSystem)HDFS是为以流式数据访问模式存储超大文件而设计的文件系统,运行在低廉的硬件集群上,DFS采用Master/slaves架构,一个H

8、DFS集群是由一个Namenode和一定数目的Datanodes组成.Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问.Namenode执行文件系统的名字空间操作,比如打开,关闭,重命名文件或目录.它也负责确定数据块到具体Datanode节点的映射.Datanode负责处理文件系统客户端的读写请求.HDFS特点:1.能访问超大文件.2.流式数据访问方式.HDFS应用对文件要求的是write一0nereadmany访问模型,一个文件经过创建,写,关闭之后就不需要改变.这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能.3.商务硬件.

9、Hadoop不需要运行在昂贵并且高可靠性的硬件上,它被设计运行在商用硬件的集群上,因此至少对于大的集群来说,节点故障的几率还是较高的.HDFS在面对这种故障时,被设计为能够继续运行而让用户察觉不到明显的中断.4.低延迟访问不适合HDFS.需要低延迟访问数据在毫秒范围内的应用并不适合HDFS.HDFS是为达到高数据吞吐量而优化的,这有可能会以延迟为代价.目前,对于低延迟访问HBase足更好的选择.5.大量小文件.名称节点(namenode)存储着文件系统的元数据,因此文件数量的限制也由名称节点的内存量决定.根据经验,每个文件,索引目录以及块占大约150个字节.因此,举例来说,如果有一百万个文件,

10、每个文件占一个块,就至少需要300MB的内存.虽然存储上百万的文件是可行的,十亿或更多的文件就超出目前硬件的能力了.6.单用户写入,不支持任意位置修改文件.HDFS中的文件只有一个写入者,而且写操作总是在文件的末尾.它不支持多个写入者,或是在文件的任意位置修改.(二)MapReduce分布式计算架构原文件经过Map函数处理之后,由K1/V1对转换成K2/V2对,再通过Map/Reduce框架处理后传给reduce函数,此过程是对软件设计开发计算机光盘软件与应用ComputerCDSoftwareandApplications2011年第9期Key/Value进行排序和分组,因此Map函数的输出

11、类型和Reduce函数的输入类型一致.存在多个Reduce阶段,Map任务则会对其输出进行分区,为每一个Reduce任务创建一个分区(partitioner,默认为HashPartitioner),每个分区包含很多Key/Value对,在处理Map输出的时候,会将Key进行哈希处理,以此决定该记录被放在哪个分区上,经过reduce阶段的处理,就会形成最终数据,输出到HDFS,默认文件名为part一00000partO000N.1.命令行接口:通过命令行与HDFS交互外,还有其它接口,其中命令行最简单,基本文件系统操作:读取文件,创建目录,移动文件,删除数据,列出索引目录等.输入hadoopfs

12、help命令即可看到所有命令详细的帮助文件.2.HDFS中的文件许可:HDFS对于文件及目录有与POSIX非常相似的许可模式.共有三种形式的许可:读取许可(r),写入许可(w)和执行许可(x).读取文件或列出目录内容时需要读取许可,写入一个文件,或是在一个目录上创建或删除文件或目录,需要写入许可,对于文件而言执行许可可以忽略因为HDFS中不能执行文件(与POSIX不同),但在访问一个目录的子项时是需要的.(三)HadoopJAVAInterface1.使用FileSystemAPI读取数据直接使用FileSystem以标准输出格式显示Hadoop文件系统的文件publicclassFileSy

13、stemCatpublicstaticvoidmain(Stringargs)throwsException(Strnguri=argsO;Configurationconf=newConfiguration():FileSystemfs=FileSystem.get(URI.create(uri),conf):InputStreamin=nul1;try(in=fs.open(newPath(uri):IOUtils.copyBytes(in,System.out,4096,false):finallyIOUtils.closeStream(in):)程序运行结果如下:%hmdoopFile

14、SyetanCethdg:,/localho|t/uaer/tom/quangle.t#tOnthetopoftheCzumpettyTreeTheOuang1ewanglesatButhisfaceyoucouldnotseeOnacc-ouncofhi8Be&verHet2.写入数据FileSystem有一系列创建文件的方法,最简单的是提供一个路径对象,然后返回一个用来写的输出流,create方法:PublicFSDataOutputStreamcreate(Pathf)throwsIOException如下示例:publicclassFileCopyWithProgress(pu

15、blicstaticvoidmain(Stringargs)throwsExceptionStringloca1Src=argsO:Stringdst=args1;InputStreamin=newBufferedInputStream(newFileInputStream(1ocalSrc);Configurationconf=newConfiguration():Fi1eSystemfs=Fi1eSystem.get(URI.create(dst),conf):OutputStreamout=fs.create(newPath(dst),newProgressable()Publicvoi

16、dprogress()System.out.print(“.”):IOUtils.copyBytes(in,out,4096,true):3.查询文件系统显示一一个Hadoop文件系统中一些路径的文件信息:publicclassListStatusfpublicstaticvoidmain(Stringargs)throwsException(Stringuri=args0:Configurationconf=newConfiguration();FileSystemfs=FileSystem.get(URI.create(dst),conf):Pathpaths=newPathargs.1e

17、ngth;For(inti=0:i<paths.1ength;i+)Pathsi=newPath(argsi;FileStatusstatus=fs.1istStatus(paths);PathlistedPaths=FileUtil.stat2Paths(statsus);For(Pathp:listedPaths)System.out.printin(P):)运行结果如下:he40o$i#肆tnhdgal,tl#,ttdloealho|tlueoz1%如球t蹦00al,#i碟;,i00h0#0搬,b08妊填#,l0#t,辨,e分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS

18、,Tencent用于相册存储的TFS(后续称为QFS),以及FacebookHaystack.其中TFS,QFS以及Haystack需要解决的问题以及架构都很类似,这三个文件系统称为BlobFS(BlobFileSystem).HDFS和GFS可以认为是类似的,GFS基本覆盖了HDFS的功能,而BlobFS和GFS面临的问题不同,设计的出发点也不一样,两类系统有本质的差别.如果需要将GFS和BlobFS统一成一套系统,这套系统需要同时支持大文件和小文件,且这套系统因为存放的元数据量太大,Master节点本身也需要设计成分布式.这个大一统的系统实现复杂度非常高,目前只有GFSv2有可能可以做到.

19、通过分析比较,Hadoop分布式文件系统具有以下特点:1.适合做离线的数据分析,不适合实时响应需求.2.Hadoop的优势在于能以批处理模式处理PB级以上的数据集,决定了它不适合低延迟的在线数据处理,如,股票系统.3.客户端是打包成JAR文件形式,运行于Hadoop命令行界面,可以定制执行策略,当数据到来的时候运行Map/Reduce程序,可以手动执行也可以定时执行.4.使用Hbase进行数据存储和访问,而不直接使用HDFS.5.可以用Map/Reduce作为BI等海量数据分析平台的分布式数据处理引擎,HDFS作为底层存储文件系统,HBase构建于HDFS之上用于友好的数据操作.参考文献:【1】赵春燕.云环境下作业调度算法研究与实现ID1.北京交通大学,20092】纪俊.一种基于云计算的数据挖掘平台架构设计与实现fD1.青岛大学,2009【3http:/hadoop.apache.org/,hadoop的主页网站作者简介王跃,长期从事软件开发工作,熟悉电信,能源行业.擅长JAVA,Oracle,ProC编程.一162

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1