基于Hadoop技术的智慧图书馆海量数据储存系统研究*

2022-11-28 09:28李焕
自动化技术与应用 2022年10期
关键词:海量储存客户端

李焕

(咸阳职业技术学院,陕西 咸阳 712000)

1 引言

在云计算技术、传感器网络技术、终端设备制造技术等多元化技术更新发展趋势下,图书馆服务模式与读者阅读方式发生了巨大转变,即基于读者个性化需求的服务定制与内容智能推送。在服务模式与阅读方式逐步走向多样化发展时,用户服务数据与读者阅读关联性数据以海量模式极速增长。智慧图书馆大数据类型繁杂,决策系统对于数据的储存与读取明确要求高效、精确、即时,而传统数据储存系统早已无法满足图书馆海量数据与准确储存读取等需求[1],所以构建新型大数据储存系统,满足智慧图书馆数据管理与决策需求已成为必然趋势。

2 系统框架

通过GFS 与HDFS 特性,基于Master/Slave 结构设计智慧图书馆海量储存系统,其框架[2]具体如图1所示。

由图1可见,系统整体框架划分为四部分,即客户端、主节点、第二主节点、数据节点。客户端功能即处于用户侧,为用户进入系统的入口,同时也是系统与用户实时交互的载体,关键作用是对外提供操作接口,监控用户操作行为,在用户发出指令之后,客户端与远程接口相对接;主节点功能即其为系统框架核心,作为Master 端不仅可管控多数据节点,还可实现信息与地址映射,就结构层面而言,其功能结构[3]具体如图2所示。就功能层面来讲,可管控日志、数据块、安全。所以,主节点为系统核心环节,是管理与驱动储存系统的神经中枢。

第二主节点功能即主节点宕机状态下的临时备用节点,监控主节点工作状态,且在主节点内稳定运行,落实检查点相关机制,实时准备代替主节点管理系统,但是只具备读取功能。

数据节点功能即用户储存数据,基于数据块方式在节点中储存数据。在工作中,管理环节占据比例较大,监听主节点指令,并汇报实时运行状况。在结构层面,其功能结构[4]具体如图3所示。由图可知,逻辑层面包含数据操作与生命周期管控,且与上层接口衔接。在接口层,包含两种模式,即IPC与TCP,以应对在不同节点传输数据。

3 系统功能模块

3.1 读取功能

以输入流对象提供接口,就具体需求设计多元读取方式,以读取数据,且不同方式间存在特定关联。数据读取过程相对复杂,即构建输入流与勘误处理分析。其中构建输入流应基于调取远程接口getBlockLoc 方法获取具体位置信息。客户端则通过BlockReader 接口根据字符读取数据。

3.2 写入功能

通过系统对于数据储存的明确指令,写入功能主要包含数据增补与写入,因此,系统提供了针对性接口加以支持,表征着构建新文件,就初始环节写入数据;通过append接口开启输出流以追加数据,表征着基于既有文件,就末端环节写入数据[5]。

3.3 主节点功能

3.3.1 元数据

元数据信息为主节点高效管理系统的依据,以及命名空间数据与参数数据。就数据块参数而言,文件与数据块映射信息主要通过三个字段表征,即blockid、size、blockSeq。在设计类图时,构成BlockMap 类图结构,具体如图4所示。

3.3.2 日志数据

日志数据切实反映了系统重要元数据操作历史记录,基于特定字段表示相应操作,即创建文件、重命名、删除、关闭文件、设置版本号、设置访问时间等等。在日志数据管理中,需周期性与元数据融合,构成检查点机制,其中检查点构成会造成主节点状态实时变化。

3.3.3 数据节点

数据节点管理需以特定字段加以表示,其具体管理类图如图5所示。

其中DatanodeID 与DataNodeInfo 保存表示信息,DatanodeDescriptor类成员变量即运行状态信息,而bandwidth代表负载均衡宽带设置相关命令,invalidateBlocks代表数据块删除命令。数据节点添加进集群前,需加以注册,注册过程由主节点管控,注册成功之后,相关信息则会被保存,同时会把数据节点IP 编入网络拓扑。在系统运行时,主节点则会发挥作用,对数据节点进行管理,以确保集群工作可靠性与稳定性。

3.3.4 数据块

系统中,主节点不仅需管理数据节点,还需管理数据块,即处理数据块与数据接收报告。数据块在主节点中,存在相应不同状态,还可详细划分相关状态。在类图设计时,基于BlockManager管理数据块,而内部结构层面,则选用新方法储存数据块状态[6]。

3.4 数据节点模块

数据节点中,主要通过DatanodeStorage全程管理数据块,基于Storage Directory管理相关目录,此两类共同构成数据储存类图,具体如图6所示。

就数据节点层面而言,以FSDataset类为辅助实现数据块管理,即构建数据文档、审核数据块信息。就功能不同,基于此类图,抽象出子类,即FSDir、FSVolumn、FSVolumnSet。

4 系统储存性能优化

基于计算机技术的智慧图书馆海量数据储存系统应支持多用户端并发高速读取操作,储存效率高,成本低,且支持系统根据海量数据冗余备份的需要,实时数据备份策略。系统可扩展性储存流程[7]具体如图7所示。

其中,NameNode作用是管理文件系统命名空间,即维护文件系统数与相关目录结构、元数据,所有信息以不同文件形式永远储存于本地磁盘,其中详细记录了文件块所处数据节点信息,存储节点数据块位置信息在启动系统的时候,数据节点发挥作用重新构建。DataNode是海量数据储存单元,在智慧图书馆决策需要读取数据时,需先访问NameNode,获取文件信息与数据分布特性,并基于所获信息通过储存节点进行数据读取。在用户获取数据信息后,后续重复读取数据时,便不再需要重复访问,客户端会根据记录从储存节点读取数据。另外,图书馆还可就海量数据储存需要,以增加DataNode节点数量的方式,横向增大储存能力,只需把增加的DataNode 添加到NameNode优化管理即可。

5 系统测试与实现

5.1 系统测试

智慧图书馆海量数据储存系统着重点在于节点磁盘速度,整合不同框架的集群节点,读写速度分别为47MB/s与23MB/s。同时在个体差异性层面,与节点硬件配置也密切相关。系统在功能性测试时,分别面向主节点与数据节点做了针对性测试,测试内容与结果[8]具体如表1所示。

表1 功能测试结果

系统基于Linux 环境部署,为实时监控系统运行状态,利用Nmon工具全程监控,其可监视CPU使用率、内存利用、磁盘读写比率、网络I/O 速度等等,监控结果可通过屏幕展示全部关键性能优化信息,动态更新,利于系统性能数据分析,且系统运行稳定,与预期明确相符。

5.2 系统实现

5.2.1 数据读取实现

数据储存系统分布式存储结构在很大程度为数据迅速读取提供了基础性服务,本文信息读取主要是基于客户端对外提供接口得以实现的,由整体架构而言,数据读取涉及客户端,具体流程即用户调用客户端数据读取接口,此接口便会基于主节点获取数据块位置信息,以此由远程过程调取方式与系统数据节点构建数据读取通道,从而读取数据。数据读取过程主要包括读取接口调用、系统内部交互、多数据块副本基础上怎样选取最佳数据节点等。本文以读取接口调用为例进行了实现分析。

操作接口为用户或者应用程序获得数据读取的基础入口,于大数据环境中,数据读取可采取各式各样的方式,常见的是Shell 接口、Java API、网页下载,这主要是由应用不同层面,为方便用户层面加以设计的,不同方法所呈现的特征与优势大不相同。Shell接口用户以命令方式执行操作,通知系统读取数据,系统所提供的Shell 命令包含get、getMerge、cat、copyToLocal 等等。下面就copyToLocal指令,详细阐述Shell文件复制实现过程:在客户端传输copyToLocal 指令之后,主节点会就节点选择策略,进行读取代价计算,以此根据读取代价面向数据节点进行排序处理,排名靠前则代表读取效率越高,客户端便会选取相对靠前的数据节点以连接构建通道,从而实现数据读取,但是在此过程中很有可能会由于数据块损坏,导致报错。具体实现效果如图8所示。

5.2.2 数据写入实现

针对智慧图书馆海量数据存储系统,作为最为复杂的操作,数据写入主要包含数据写入与数据追加两项操作。基于整体结构而言,数据写入即客户端、主节点、数据节点,依旧以操作接口实现进行分析。

不同于数据读取,数据写入操作接口不包含网页版,由Shell 接口与Java API 接口构成。Shell 接口是面向Java API 的封装,内部基于Java API 得以实现。Shell接口使用类似于Linux 系统的Shell 命令,基于命令实现文件写入。在写入过程中,文件划分为多个数据块,其会并发写入不同数据节点内,在写入时,会和主节点之间形成关联性,并汇报数据块存储位置等相关信息。具体实现效果如图9所示。

6 结束语

综上所述,为适应全新发展环境,强化服务能力,降低管理成本,智慧图书馆基于云计算、大数据等新型信息技术,有机连接了硬件设备、数字资源、用户、管理人员等相关对象,全面联通,智慧化提供了知识资源服务,实现了人与科学理论知识的有机融合,为用户提供了更多新型知识,构建了智能化、智慧化图书服务模式。本文基于计算机设计了智慧图书馆海量数据储存系统,并进行了系统测试,结果表明,系统可有效实现海量数据存储管理功能,且各节点运行过程中,对于不同数据类型,可根据节点选择科学可行策略,以供高效数据储存服务与读写功能,以此保障存储性能的实效性,从而实现系统良好负载均衡性,在海量数据高效精确搜索的基础上,系统I/O效率得以显著提升。

猜你喜欢
海量储存客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
一种傅里叶域海量数据高速谱聚类方法
海量GNSS数据产品的一站式快速获取方法
冬季养羊这样储存草料
海量快递垃圾正在“围城”——“绿色快递”势在必行
危险物品储存和运输安全
松鼠怎样储存食物
一个图形所蕴含的“海量”巧题
媒体客户端的发展策略与推广模式