CN110515918A - 一种基于hdfs的分布式存储平台及构建方法 - Google Patents
一种基于hdfs的分布式存储平台及构建方法 Download PDFInfo
- Publication number
- CN110515918A CN110515918A CN201910763380.7A CN201910763380A CN110515918A CN 110515918 A CN110515918 A CN 110515918A CN 201910763380 A CN201910763380 A CN 201910763380A CN 110515918 A CN110515918 A CN 110515918A
- Authority
- CN
- China
- Prior art keywords
- hdfs
- file
- hadoop
- eclipse
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于HDFS的分布式存储平台及构建方法,该存储平台包括HDFS数据服务器、关系数据库和web服务器;该HDFS数据服务器,用于存储用户文件;该关系数据库,用于存储用户账户数据;该web服务器,用于运行HDFS API应用进程且与所述HDFS数据服务器进行文件交互。
Description
技术领域
本发明属于分布式计算领域,具体涉及一个基于HDFS的分布式存储平台,主要用于文件备份与数据处理。
背景技术
目前互联网用户和用户数据呈现爆炸型增长,传统的数据库以难以处理用户产生的非结构化数据,而且传统数据库已难以满足海量用户文件的存储,目前常规解决办法为将Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统,由于HDFS是一个高度容错性的系统,适合部署在廉价的机器上,且HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。通过在HDFS放宽了一部分可移植操作系统接口(POSIX)约束,来实现流式读取文件系统数据的目的。
发明内容
本发明目的在于针对已有的问题,提出一种基于HDFS的分布式存储平台,采用HDFS为海量非结构化用户文件数据提供底层的分布式存储,实现用户文件的汇总、备份和管理功能。
技术方案:本发明公开了一种基于HDFS的分布式存储平台,包括HDFS数据服务器、关系数据库和web服务器;
所述HDFS数据服务器,用于存储用户文件;
所述关系数据库,用于存储用户账户数据;
所述web服务器,用于运行HDFS API应用进程且与所述HDFS数据服务器进行文件交互。
进一步的,所述HDFS数据服务器采用伪分布式HDFS集群作为存储环境。
进一步的,还包括用户管理模块,在web服务器部署好后,所述用户管理模块接收用户信息,并将用户信息写入关系数据库中。
进一步的,还包括文件管理模块,所述文件管理模块,接收用户对平台文件进行的上传、下载、查询和删除操作命令。
本发明还公开了一种基于HDFS的分布式存储平台构建方法,包括:
在至少一个主机中的每一个所述主机中搭建Hadoop开源框架,以Eclipse为集成开发环境,建立web端服务器,采用HDFS实现底层的分布式文件存储;`
搭建关系数据库,存放用户账户数据;该关系数据库通过插件连接Eclipse;
在Hadoop开源框架下搭建Hadoop集群环境和Hadoop集成开发环境;
建立用户管理界面,接收用户信息后,将用户信息写入关系数据库中;
建立文件管理界面,接收用户对平台文件进行的上传、下载、查询和删除操作命令。
进一步的,所述搭建Hadoop集群环境,包括:
配置jdk环境变量;
配置Hadoop运行的环境变量;
配置Hadoop守护进程的运行参数;在伪分布式模式下,Hadoop的守护进程运行在本地主机上,数据存储于HDFS中;
设置SSH免密登陆;
格式化系统文件并创建一个新分布式文件系统,所述系统文件为由元节点保存在主机本地文件系统中的文件命名空间的元数据信息和编辑日志;
启动HDFS的元节点和数据节点进程,所述元节点负责管理新分布式文件系统的文件命名空间的元数据信息和编辑日志,并将这些数据保存到本地的文件系统中;
运行Shell命令启动Hadoop集群,Hadoop集群环境搭建完成。
进一步的,所述配置Hadoop守护进程的运行参数,所述运行参数包括临时文件的存储目录、存储顺序、文件I/O缓存的大小、HDFS的元节点和数据节点两大进程的参数、元节点在本地文件系统中保存文件命名空间的路径、指定数据块的大小、来自数据节点的远程调用请求线程数、数据节点在本地文件系统中保存数据块的路径、YARN的资源管理器和节点管理器两大进程的参数、MapReduce应用进程和JobHistory服务器的配置参数。
进一步的,所述设置SSH免密登陆,包括:
为Hadoop集群的主节点生成登陆密钥;
将公钥文件复制为Hadoop集群能识别的免密码登陆的授权文件;
把公钥的授权文件复制给从节点。
进一步的,所述搭建Hadoop集成开发环境,采用Eclipse作为Hadoop集群的集成开发环境,选用Eclipse Mars2作为开发工具,包括:
登陆主节点虚拟机,通过Shell命令下载Eclipse Mars2安装包,将其解压到本地文件系统中;
添加Eclipse Mars2的jdk环境变量,配置Hadoop的安装目录,下载插件hadoop-eclipse-plugins-2.7.2.jar,将集群与Eclipse Mars2连接;
配置Map/Reduce Locations,测试Eclipse Mars2与分布式文件系统的连接是否正常;
执行reconnect命令,完成Hadoop-Eclipse开发环境配置。
有益效果:本发明提出了基于HDFS的分布式存储平台,采用HDFS为海量非结构化用户文件数据提供底层的分布式存储,实现用户文件的汇总、备份和管理功能。能极大地减小云服务提供商最小化服务器的数量,提高用户文件数据的可靠性和安全性。
附图说明
图1是系统设计框架图;
图2是数据库配置信息示意图;
图3是用户信息表示意图;
图4是配置Hadoop环境变量图;
图5是Shell命令启动Hadoop集群图;
图6是正在运行中的Hadoop守护进程图;
图7是HDFS集群的Web UI图;
图8是Eclipse连接HDFS测试图;
图9是用户注册、登陆界面;
图10是查看用户信息是否成功录入后台数据库中。
具体实施方式
下面结合附图和实施例进一步阐述本发明。
如图1所示,本实施例的一个基于HDFS的分布式存储平台,利用HDFS的海量数据存储能力为用户提供数据汇总、备份存储和文件管理服务,用户可将文件上传至该平台,查看文件列表、也能从该平台下载文件,删除hdfs服务器的文件资源。本发明的平台数据包括用户账户数据和用户文件数据。其中,用户账户数据包含用户的账户信息,如用户的ID,用户名和密码,用户注册邮箱等,这些数据采用传统的关系数据库Oracle-MySQL来存放。用户文件则由HDFS的数据服务器来保存,用户可通过浏览器对文件进行管理。本平台采用伪分布式HDFS集群作为大数据的存储环境,以Tomcat8.0.53作为运行HDFS API应用进程的web服务器,同时作为HDFS的客户端与HDFS集群进行文件交互。开发平台与框架:本实施例采用Java作为开发语言,以Eclipse Mars2为集成开发环境,采用tomcat8.0.53作为web端服务器,Hadoop-2.7.2的HDFS实现底层的分布式文件存储。
数据库设计:在本系统的设计中,将用户的信息存储在Oracle-MySQL中,通过插件连接Eclipse Mars2,记录用户的账号、密码、注册邮箱和用户ID等信息。数据库的配置信息如图2所示,用户信息表的结构属性如图3所示;
系统环境搭建分为Hadoop集群环境搭建和Hadoop集成开发环境搭建:
Hadoop集群环境搭建共有五个步骤:
a.安装jdk。因为Hadoop是java写的开源框架,所以必须建立在java的运行环境上。从Oracle官网上下载jdk1.8.0_201,解压并安装到本地文件系统下,然后用终端命令打开当前用户的配置文件.bashrc,添加jdk的环境变量后运行source使配置文件生效。
b.安装Hadoop伪分布式模式集群,在伪分布式模式下,Hadoop的守护进程运行在本地主机上,数据存储于HDFS中,服务节点划分成主节点和从节点。首先从Oracle官网上下载安装包,将其解压到准备存放的目录下,然后在终端中编辑open~/.bash_profile配置Hadoop运行的环境变量。结果如图4所示。
c.配置Hadoop守护进程的运行参数,配置文件core-site.xml中定义元节点的url,定义临时文件的存储目录以及存储顺序、文件I/O缓存的大小。配置文件hdfs-site.xml中设置HDFS的元节点和数据节点两大进程的参数,指定元节点在本地文件系统中保存文件命名空间的路径,指定数据块的大小、来自数据节点的远程调用请求线程数、数据节点在本地文件系统中保存数据块的路径等参数。yarn-site.xml用来设置YARN的资源管理器和节点管理器两大进程的主要参数。配置文件mapred-site.xml中是设置MapReduce应用进程和JobHistory服务器的配置参数。
d.设置SSH免密登陆,否则Hadoop集群中的节点通信需要密码,会降低集群运行的效率。首先为Hadoop集群的主节点生成登陆密钥,然后再将公钥文件复制为Hadoop集群能识别的免密码登陆的授权文件,最后把主节点上包含公钥的授权文件复制给从节点。
e.格式化系统文件,启动HDFS的元节点和数据节点进程。元节点负责管理整个分布式文件系统的文件命名空间的元数据信息和编辑日志,元节点会把这些数据保存到本地的文件系统中,在启动分布式文件系统时,首先需要执行格式化命令创建一个新分布式文件系统,才能正常启动元节点服务。完成以上步骤后,运行Shell命令启动Hadoop集群,如图5所示;在元节点的终端窗口中,输入jsp命令可查看元节点的工作状态,如图6所示:由图6可以看到元节点、资源管理器、辅助元节点等守护进程和其ID,表示主节点启动成功,可以通过web端浏览器查看HDFS集群运行的状态,如图7所示,由图7所示,HDFS启动成果,到此Hadoop集群环境搭建完成。
Hadoop集成开发环境搭建:本文采用Eclipse作为Hadoop集群的集成开发环境,选用Eclipse Mars2作为开发工具。首先登陆主节点虚拟机,通过Shell命令下载EclipseMars2安装包,将其解压到本地文件系统中,然后添加Eclipse Mars2的jdk环境变量,接着配置Hadoop的安装目录,下载插件hadoop-eclipse-plugins-2.7.2.jar,将集群与EclipseMars2连接,最后配置Map/Reduce Locations,测试Eclipse Mars2与分布式文件系统的连接是否正常,如图8所示,执行reconnect命令,可看到HDFS的文件列表,至此Hadoop-Eclipse开发环境配置完成。
系统功能描述和实现:本文设计的基于HDFS的分布式存储平台由用户管理模块和文件管理模块构成:
a.用户管理模块中,用户点击“注册”按钮,通过href提供的超链接进入regist.jsp注册界面,输入用户信息后,通过后台web.xml配置文件,找到RegistServelt的java文件,提取出表单提交的数据,执行UserDao注入,与后台数据库进行交互,将用户信息写入数据库中,然后返回登录界面,再登录进入文件管理界面。
b.文件管理模块中,用户成功登陆之后可以选择上传文件命令,将客户端所在主机上的文件作为源文件上传至HDFS中,后台处理逻辑调用文件系统的拷贝方法FileSystem.copyFromLocalFile()上传至HDFS的指定位置。在用户登陆后,前台会显示用户上传的文件列表,后台处理逻辑调用FileSystem.listStatus()方法来获取用户的目录信息,这个方法返回一个FileStatus数组,遍历该数组即可得到用户上传至平台的所有文件和目录。用户若选择可以从文件列表中下载某文件,后台处理逻辑调用FileSystem.copyToLocalFile()方法把该文件下载至客户端所在主机的磁盘中。用户还可执行查询操作,在窗口中选择“搜索”命令,后台处理逻辑调用FileSystem.globStatus()方法,返回FileStatus数组,输出文件名构成查询结果列表。另外,用户还可对文件列表中的文件进行删除,后台处理逻辑FileSystem.delete()来删除目标文件。用户对平台文件进行的上传、下载、查询和删除操作都封装在HdfsDAO类中,需要对HDFS进行上传、下载、下载和查询操作只需在这个类中调用相应的方法即可。
系统功能展示:新用户进入平台需要进行注册(图9),用户模块后台处理逻辑记录下账号、密码和邮箱等用户信息,将其写入后台Oracle-MySQL数据库中,返回注册成功,用户可以对文件列表进行管理。使用Shell命令可以检查用户信息是否成功录入后台数据库中,如图10所示。
Claims (9)
1.一种基于HDFS的分布式存储平台,其特征在于:包括HDFS数据服务器、关系数据库和web服务器;
所述HDFS数据服务器,用于存储用户文件;
所述关系数据库,用于存储用户账户数据;
所述web服务器,用于运行HDFS API应用进程且与所述HDFS数据服务器进行文件交互。
2.根据权利要求1所述的一种基于HDFS的分布式存储平台,其特征在于:所述HDFS数据服务器采用伪分布式HDFS集群作为存储环境。
3.根据权利要求1所述的一种基于HDFS的分布式存储平台,其特征在于:还包括用户管理模块,在web服务器部署好后,所述用户管理模块接收用户信息,并将用户信息写入关系数据库中。
4.根据权利要求1所述的一种基于HDFS的分布式存储平台,其特征在于:还包括文件管理模块,所述文件管理模块,接收用户对平台文件进行的上传、下载、查询和删除操作命令。
5.一种基于HDFS的分布式存储平台构建方法,其特征在于:包括:
在至少一个主机中的每一个所述主机中搭建Hadoop开源框架,以Eclipse为集成开发环境,建立web端服务器,采用HDFS实现底层的分布式文件存储;`
搭建关系数据库,存放用户账户数据;该关系数据库通过插件连接Eclipse;
在Hadoop开源框架下搭建Hadoop集群环境和Hadoop集成开发环境;
建立用户管理界面,接收用户信息后,将用户信息写入关系数据库中;
建立文件管理界面,接收用户对平台文件进行的上传、下载、查询和删除操作命令。
6.根据权利要求5的一种基于HDFS的分布式存储平台构建方法,其特征在于:所述搭建Hadoop集群环境,包括:
配置jdk环境变量;
配置Hadoop运行的环境变量;
配置Hadoop守护进程的运行参数;在伪分布式模式下,Hadoop的守护进程运行在本地主机上,数据存储于HDFS中;
设置SSH免密登陆;
格式化系统文件并创建一个新分布式文件系统,所述系统文件为由元节点保存在主机本地文件系统中的文件命名空间的元数据信息和编辑日志;
启动HDFS的元节点和数据节点进程,所述元节点负责管理新分布式文件系统的文件命名空间的元数据信息和编辑日志,并将这些数据保存到本地的文件系统中;
运行Shell命令启动Hadoop集群,Hadoop集群环境搭建完成。
7.根据权利要求6所述的一种基于HDFS的分布式存储平台构建方法,其特征在于:所述配置Hadoop守护进程的运行参数,所述运行参数包括临时文件的存储目录、存储顺序、文件I/O缓存的大小、HDFS的元节点和数据节点两大进程的参数、元节点在本地文件系统中保存文件命名空间的路径、指定数据块的大小、来自数据节点的远程调用请求线程数、数据节点在本地文件系统中保存数据块的路径、YARN的资源管理器和节点管理器两大进程的参数、MapReduce应用进程和JobHistory服务器的配置参数。
8.根据权利要求6所述的一种基于HDFS的分布式存储平台构建方法,其特征在于:所述设置SSH免密登陆,包括:
为Hadoop集群的主节点生成登陆密钥;
将公钥文件复制为Hadoop集群能识别的免密码登陆的授权文件;
把公钥的授权文件复制给从节点。
9.根据权利要求5所述的一种基于HDFS的分布式存储平台构建方法,其特征在于:所述搭建Hadoop集成开发环境,采用Eclipse作为Hadoop集群的集成开发环境,选用EclipseMars2作为开发工具,包括:
登陆主节点虚拟机,通过Shell命令下载Eclipse Mars2安装包,将其解压到本地文件系统中;
添加Eclipse Mars2的jdk环境变量,配置Hadoop的安装目录,下载插件hadoop-eclipse-plugins-2.7.2.jar,将集群与Eclipse Mars2连接;
配置Map/Reduce Locations,测试Eclipse Mars2与分布式文件系统的连接是否正常;
执行reconnect命令,完成Hadoop-Eclipse开发环境配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763380.7A CN110515918A (zh) | 2019-08-19 | 2019-08-19 | 一种基于hdfs的分布式存储平台及构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910763380.7A CN110515918A (zh) | 2019-08-19 | 2019-08-19 | 一种基于hdfs的分布式存储平台及构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110515918A true CN110515918A (zh) | 2019-11-29 |
Family
ID=68625716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910763380.7A Withdrawn CN110515918A (zh) | 2019-08-19 | 2019-08-19 | 一种基于hdfs的分布式存储平台及构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515918A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382137A (zh) * | 2020-03-16 | 2020-07-07 | 上海英方软件股份有限公司 | 一种Hadoop集群文件备份系统及方法 |
CN111966656A (zh) * | 2020-07-17 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 存储文件高负载场景模拟方法、系统、终端及存储介质 |
CN113138837A (zh) * | 2021-04-22 | 2021-07-20 | 康键信息技术(深圳)有限公司 | 基于工单信息的虚拟机安装方法、装置、设备及存储介质 |
CN113220237A (zh) * | 2021-05-17 | 2021-08-06 | 北京青云科技股份有限公司 | 一种分布式存储方法、装置、设备及存储介质 |
-
2019
- 2019-08-19 CN CN201910763380.7A patent/CN110515918A/zh not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382137A (zh) * | 2020-03-16 | 2020-07-07 | 上海英方软件股份有限公司 | 一种Hadoop集群文件备份系统及方法 |
CN111966656A (zh) * | 2020-07-17 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 存储文件高负载场景模拟方法、系统、终端及存储介质 |
CN111966656B (zh) * | 2020-07-17 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 存储文件高负载场景模拟方法、系统、终端及存储介质 |
CN113138837A (zh) * | 2021-04-22 | 2021-07-20 | 康键信息技术(深圳)有限公司 | 基于工单信息的虚拟机安装方法、装置、设备及存储介质 |
CN113220237A (zh) * | 2021-05-17 | 2021-08-06 | 北京青云科技股份有限公司 | 一种分布式存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615151B2 (en) | Query language for selecting object graphs from application metadata | |
CN110515918A (zh) | 一种基于hdfs的分布式存储平台及构建方法 | |
Grinberg | Flask web development | |
US11755390B1 (en) | Using keep-alive markers to extend redelivery deadlines | |
US9633106B1 (en) | Log data analysis | |
US10394552B2 (en) | Interface description language for application programming interfaces | |
US8655738B2 (en) | Contextual computing system | |
Sanderson | Programming google app engine: build and run scalable web apps on google's infrastructure | |
US8296412B2 (en) | Method and system for event impact analysis | |
CN102859521B (zh) | 数据库应用的集中控制 | |
US20030120600A1 (en) | Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation | |
US20030110315A1 (en) | System and method for providing a java interface to an application view component | |
US20050278697A1 (en) | Object type-declaration prefix syntax | |
WO2012034440A1 (zh) | 一种数据库升级脚本的生成方法和装置 | |
JP2001514422A (ja) | 分散型コンピュータシステム | |
Varanasi et al. | Spring Rest | |
CN117850771A (zh) | web服务的业务应用开发平台、方法及存储介质 | |
US10713014B2 (en) | Multi-platform interface framework | |
CN105610908B (zh) | 一种基于安卓设备的samba服务实现方法及系统 | |
US10705815B2 (en) | Split installation of a software product | |
Huang et al. | Research on Single Sign-on Technology for Educational Administration Information Service Platform | |
Paro | Elasticsearch 8. x Cookbook: Over 180 recipes to perform fast, scalable, and reliable searches for your enterprise | |
Sanderson | Programming Google App Engine with Java: Build & Run Scalable Java Applications on Google's Infrastructure | |
Lalis | Searching for Architectural Design Decisions in Open-Source Software Mailing Lists | |
Bhagya et al. | GHTraffic: a dataset for reproducible research in service-oriented computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191129 |