基于Hadoop的文件存取优化的方法研究
发布时间:2021-09-19 05:12
随着大数据技术的兴起,用户访问互联网所产生的数据正在呈指数级增长,这些数据大部分以小文件最多。传统的存储技术对于处理海量小文件的性能已经大幅度下降,而Hadoop分布式架构为处理海量数据提供了很好的解决方案。Hadoop本身在处理大型文件方面表现出高性能,但是随着小文件数量的增加,Hadoop内存中的NameNode元数据块存储空间消耗过大,在访问文件性能上有所降低。因此本文设计了一种高效的解决Hadoop在小文件存储优化方面的方案,这也是本文所要研究的重要方向。针对Hadoop中小文件存储效率低下的问题,本文设计了一种关联文件合并算法以及文件缓存算法。在关联文件合并算法中,在小文件预处理模块上设计一种文本挖掘模型算法,即基于TF-IDF特征提取和加权余弦相似度的K-最近邻算法,该算法首先通过对英文文本集进行单词的词干提取、分词等操作,找到待分类的训练文件与K个邻居的测试文件所属的类别;然后通过实验测试在众多训练文件集中找到与待分类文件最相似的K个邻居,并对其进行聚类实现;最终得到分类后的测试文件集,对分类后的文件集进行合并。合并算法中将小文件以<key,value>键值对...
【文章来源】:沈阳工业大学辽宁省
【文章页数】:60 页
【学位级别】:硕士
【部分图文】:
Hadoop系统架构
沈阳工业大学硕士学位论文82.2分布式文件系统HDFSHDFS是处于Hadoop平台层次架构中最底层的一个架构,分布在Hadoop的文件存储层,主要任务是对数据进行处理计算,以及保存文件的元数据,它是为存储具有流式数据访问模式的大型文件而设计的,主要用于有效地处理分布式存储。HDFS优势是可以运行在Hadoop集群上,可以在普通的硬件机器上提供既可靠又可伸缩的高容错数据存储。传统的对应用程序数据进行管理的系统主要有PVFS[44]、Lustre[45]和Google文件系统[46],和HDFS有共同相似点的是都管理着数据文件的元数据,并且都可用于开发大规模的分布式应用程序,这些应用程序可以利用多个节点的计算能力来处理数据。如图2.2所示,HDFS结构中采用多台HDFSClient,相当于一个对文件进行读写的接口,通过向NameNode发送FileName请求,主节点服务器NameNode负责响应Client的访问文件的请求,发送Filemetadata反馈信息给客户端。Client根据DataNode中文件块的ID,找到文件所在数据块位置,因为元数据block块存放的是DataNode上文件的地址信息等;数据节点服务器主要负责对元数据文件对应的数据块的存储管理,并将所有的block信息反馈给名字节点服务器;Client客户端主要是负责对文件的读娶查询、上传等的操作。图2.2HDFS体系结构Fig.2.2HDFSarchitectureNameNode进程是运行在HDFS主节点上的元数据服务器,用来监督客户端的访问行为,以便有客户端发送读/写文件访问请求时,更快地将文件信息反馈给客户端。名称节点控制从节点守护进程以执行I/O任务,NameNode名称节点管理和控制如何将数据文件分解成数据块,并标识哪些数据节点可以存储这些文件的数据块,以及管理分布式文件系统的整体状态和适应性。
第2章Hadoop平台介绍及相关技术分析9DataNode是HDFS的主要存储单元,用于存储和提供HDFS上文件的数据块和服务客户端的I/O请求,并根据NameNode的指令执行块操作。存储在数据节点中的块按照配置复制,以提供可靠性和高可用性,这些复制块分布在整个Hadoop集群中,用来提供快速计算。Hadoop集群由运行在每个主节点上的DataNode守护进程组成,提高快速计算效率。HDFSClient相当于一个接口,该接口能够实现的是向文件处理层发送读写文件的请求,进而从文件系统中获取到相应文件信息。Block数据块是存储在HDFS中的数据文件被分解后的文件块大小,一般系统默认数据块大小为128MB,数据块被复制到少数单独的机器上(通常是T)用于容错机制。采用HDFS直接接入客户端机制,实现高带宽。当应用程序读取文件时,HDFS客户端首先向NameNode询问文件块的主机副本的数据节点列表。然后,它直接与数据节点联系并请求所需块的转移。当客户端写入时,它首先要求名称节点选择数据节点来承载文件第一个块的副本。客户端组织从节点到节点的管道节点并发送数据。当第一个块被填充时,客户端请求选择新的数据节点来承载下一个块的副本。2.3HDFS数据流程目前主流的各类分布式系统都可以实现对文件的请求读写、文件删除和修改文件信息等操作,同样HDFS分布式文件系统也能够实现其操作。2.3.1HDFS读文件流程客户端Client发送读取文件的整体流程,如图2.3所示。图2.3HDFS文件读取流程Fig.2.3HDFSfilereadingprocess读文件的大体步骤如下:(1)首先客户端往HDFS中发送请求读取某个文件的请求,这时HDFS接收到请求以后,会调用系统中的open()方法中的DistributedFileSystem打开该文件;
本文编号:3401085
【文章来源】:沈阳工业大学辽宁省
【文章页数】:60 页
【学位级别】:硕士
【部分图文】:
Hadoop系统架构
沈阳工业大学硕士学位论文82.2分布式文件系统HDFSHDFS是处于Hadoop平台层次架构中最底层的一个架构,分布在Hadoop的文件存储层,主要任务是对数据进行处理计算,以及保存文件的元数据,它是为存储具有流式数据访问模式的大型文件而设计的,主要用于有效地处理分布式存储。HDFS优势是可以运行在Hadoop集群上,可以在普通的硬件机器上提供既可靠又可伸缩的高容错数据存储。传统的对应用程序数据进行管理的系统主要有PVFS[44]、Lustre[45]和Google文件系统[46],和HDFS有共同相似点的是都管理着数据文件的元数据,并且都可用于开发大规模的分布式应用程序,这些应用程序可以利用多个节点的计算能力来处理数据。如图2.2所示,HDFS结构中采用多台HDFSClient,相当于一个对文件进行读写的接口,通过向NameNode发送FileName请求,主节点服务器NameNode负责响应Client的访问文件的请求,发送Filemetadata反馈信息给客户端。Client根据DataNode中文件块的ID,找到文件所在数据块位置,因为元数据block块存放的是DataNode上文件的地址信息等;数据节点服务器主要负责对元数据文件对应的数据块的存储管理,并将所有的block信息反馈给名字节点服务器;Client客户端主要是负责对文件的读娶查询、上传等的操作。图2.2HDFS体系结构Fig.2.2HDFSarchitectureNameNode进程是运行在HDFS主节点上的元数据服务器,用来监督客户端的访问行为,以便有客户端发送读/写文件访问请求时,更快地将文件信息反馈给客户端。名称节点控制从节点守护进程以执行I/O任务,NameNode名称节点管理和控制如何将数据文件分解成数据块,并标识哪些数据节点可以存储这些文件的数据块,以及管理分布式文件系统的整体状态和适应性。
第2章Hadoop平台介绍及相关技术分析9DataNode是HDFS的主要存储单元,用于存储和提供HDFS上文件的数据块和服务客户端的I/O请求,并根据NameNode的指令执行块操作。存储在数据节点中的块按照配置复制,以提供可靠性和高可用性,这些复制块分布在整个Hadoop集群中,用来提供快速计算。Hadoop集群由运行在每个主节点上的DataNode守护进程组成,提高快速计算效率。HDFSClient相当于一个接口,该接口能够实现的是向文件处理层发送读写文件的请求,进而从文件系统中获取到相应文件信息。Block数据块是存储在HDFS中的数据文件被分解后的文件块大小,一般系统默认数据块大小为128MB,数据块被复制到少数单独的机器上(通常是T)用于容错机制。采用HDFS直接接入客户端机制,实现高带宽。当应用程序读取文件时,HDFS客户端首先向NameNode询问文件块的主机副本的数据节点列表。然后,它直接与数据节点联系并请求所需块的转移。当客户端写入时,它首先要求名称节点选择数据节点来承载文件第一个块的副本。客户端组织从节点到节点的管道节点并发送数据。当第一个块被填充时,客户端请求选择新的数据节点来承载下一个块的副本。2.3HDFS数据流程目前主流的各类分布式系统都可以实现对文件的请求读写、文件删除和修改文件信息等操作,同样HDFS分布式文件系统也能够实现其操作。2.3.1HDFS读文件流程客户端Client发送读取文件的整体流程,如图2.3所示。图2.3HDFS文件读取流程Fig.2.3HDFSfilereadingprocess读文件的大体步骤如下:(1)首先客户端往HDFS中发送请求读取某个文件的请求,这时HDFS接收到请求以后,会调用系统中的open()方法中的DistributedFileSystem打开该文件;
本文编号:3401085
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/3401085.html
最近更新
教材专著