CN111198849A - 一种基于Hadoop的供电数据读写系统及其工作方法 - Google Patents
一种基于Hadoop的供电数据读写系统及其工作方法 Download PDFInfo
- Publication number
- CN111198849A CN111198849A CN202010028345.3A CN202010028345A CN111198849A CN 111198849 A CN111198849 A CN 111198849A CN 202010028345 A CN202010028345 A CN 202010028345A CN 111198849 A CN111198849 A CN 111198849A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- client
- file system
- read
- 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.)
- Pending
Links
Images
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/13—File access structures, e.g. distributed indices
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Hadoop的供电数据读写系统及其工作方法,包括分布式文件系统(HDFS)、客户端和服务器;所述分布式文件系统分别与所述客户端和所述服务器连接,所述服务器将供电数据存储在所述分布式文件系统中,所述分布式文件系统进行数据存储,数据文件被分成block存储在磁盘上;所述分布式文件系统还接收客户端的操作请求,用以客户端读取和写入数据。本发明能够实现高效的数据处理,方便用户在客户端进行数据的读取与写入。
Description
技术领域
本发明涉及数据分布式处理技术领域,特别是一种基于Hadoop的供电数据读写系统及其工作方法。
背景技术
随着企业数据量的增多,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。Hadoop本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(largedata set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streamingaccess)文件系统中的数据。
高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
发明内容
有鉴于此,本发明的目的是提供一种基于Hadoop的供电数据读写系统及其工作方法,能够提供高可用性服务。
本发明采用以下方案实现:一种基于Hadoop的供电数据读写系统,包括分布式文件系统(HDFS)、客户端和服务器;所述分布式文件系统分别与所述客户端和所述服务器连接,所述服务器将供电数据存储在所述分布式文件系统中,所述分布式文件系统进行数据存储,数据文件被分成block存储在磁盘上;所述分布式文件系统还接收客户端的操作请求,用以客户端读取和写入数据。
较佳的,本发明提供一种基于Hadoop的供电数据读写系统的工作方法,包括以下步骤:
步骤S1:所述分布式文件系统存储所述服务器的供电数据,并将数据文件分成block存储在磁盘上;
步骤S2:所述分布式文件系统接收客户端的读取数据请求;
步骤S3:所述分布式文件系统接收客户端的写入数据请求;
步骤S4:完成读写操作。
进一步地,所述步骤S2具体包括以下步骤:
步骤S21:初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件;
步骤S22:FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址;
步骤S23:FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据;在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点;
步骤S24:DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端(client);
步骤S25:当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点;
步骤S26:当客户端读取完毕数据的时候,调用FSDataInputStream的close函数;失败的数据节点将被记录,以后不再连接。
进一步地,所述步骤S3具体包括以下步骤:
步骤S31:初始化FileSystem,客户端调用create()来创建文件;
步骤S32:FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件;
步骤S33:FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据;
步骤S34:DFSOutputStream将数据分成块,写入data queue;data queue由DataStreamer读取,并通知元数据节点分配数据节点,用以存储数据块,每块默认复制3块;分配的数据节点放在一个pipeline里;Data Streamer将数据块写入pipeline中的第一个数据节点;第一个数据节点将数据块发送给第二个数据节点;第二个数据节点将数据发送给第三个数据节点;
步骤S35:DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功;
步骤S36:当客户端结束写入数据,则调用stream的close函数;此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功,最后通知元数据节点写入完毕;
步骤S37:如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除;失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点,元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。
与现有技术相比,本发明具有以下有益效果:
本发明能够实现高效的数据处理,方便用户在客户端进行数据的读取与写入。
附图说明
图1为本发明实施例的系统结构框图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供一种基于Hadoop的供电数据读写系统,包括分布式文件系统(HDFS)、客户端和服务器;所述分布式文件系统分别与所述客户端和所述服务器连接,所述服务器将供电数据存储在所述分布式文件系统中,所述分布式文件系统进行数据存储,数据文件被分成block存储在磁盘上;所述分布式文件系统还接收客户端的操作请求,用以客户端读取和写入数据。
较佳的,本实施例还提供一种基于Hadoop的供电数据读写系统的工作方法,包括以下步骤:
步骤S1:所述分布式文件系统存储所述服务器的供电数据,并将数据文件分成block存储在磁盘上;
步骤S2:所述分布式文件系统接收客户端的读取数据请求;
步骤S3:所述分布式文件系统接收客户端的写入数据请求;
步骤S4:完成读写操作。
在本实施例中,所述步骤S2具体包括以下步骤:
步骤S21:初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件;
步骤S22:FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址;
步骤S23:FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据;在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点;
步骤S24:DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端(client);
步骤S25:当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点;
步骤S26:当客户端读取完毕数据的时候,调用FSDataInputStream的close函数;失败的数据节点将被记录,以后不再连接。
在本实施例中,所述步骤S3具体包括以下步骤:
步骤S31:初始化FileSystem,客户端调用create()来创建文件;
步骤S32:FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件;
步骤S33:FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据;
步骤S34:DFSOutputStream将数据分成块,写入data queue;data queue由DataStreamer读取,并通知元数据节点分配数据节点,用以存储数据块,每块默认复制3块;分配的数据节点放在一个pipeline里;Data Streamer将数据块写入pipeline中的第一个数据节点;第一个数据节点将数据块发送给第二个数据节点;第二个数据节点将数据发送给第三个数据节点;
步骤S35:DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功;
步骤S36:当客户端结束写入数据,则调用stream的close函数;此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功,最后通知元数据节点写入完毕;
步骤S37:如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除;失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点,元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。
较佳的,在本实施例中,
Hadoop采用主从结构:
•主节点, namenode
•从节点,有很多个: datanode
namenode负责:
•接收用户操作请求
•维护文件系统的目录结构
•管理文件与block之间关系,block与datanode之间关系
datanode负责:
•存储文件
•文件被分成block存储在磁盘上
•为保证数据安全,文件会有多个副本
Secondary NameNode负责:
合并fsimage和edits文件来更新NameNode的metedata。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (4)
1.一种基于Hadoop的供电数据读写系统,其特征在于:包括分布式文件系统(HDFS)、客户端和服务器;所述分布式文件系统分别与所述客户端和所述服务器连接,所述服务器将供电数据存储在所述分布式文件系统中,所述分布式文件系统进行数据存储,数据文件被分成block存储在磁盘上;所述分布式文件系统还接收客户端的操作请求,用以客户端读取和写入数据。
2.一种根据权利要求1所述的基于Hadoop的供电数据读写系统的工作方法,其特征在于:包括以下步骤:
步骤S1:所述分布式文件系统存储所述服务器的供电数据,并将数据文件分成block存储在磁盘上;
步骤S2:所述分布式文件系统接收客户端的读取数据请求;
步骤S3:所述分布式文件系统接收客户端的写入数据请求;
步骤S4:完成读写操作。
3.根据权利要求2所述的一种基于Hadoop的供电数据读写系统的工作方法,其特征在于:所述步骤S2具体包括以下步骤:
步骤S21:初始化FileSystem,然后客户端用FileSystem的open()函数打开文件;
步骤S22:FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址;
步骤S23:FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据;在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点;
步骤S24:DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端;
步骤S25:当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点;
步骤S26:当客户端读取完毕数据的时候,调用FSDataInputStream的close函数;失败的数据节点将被记录,以后不再连接。
4.根据权利要求2所述的一种基于Hadoop的供电数据读写系统的工作方法,其特征在于:所述步骤S3具体包括以下步骤:
步骤S31:初始化FileSystem,客户端调用create()来创建文件;
步骤S32:FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件;
步骤S33:FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据;
步骤S34:DFSOutputStream将数据分成块,写入data queue;data queue由DataStreamer读取,并通知元数据节点分配数据节点,用以存储数据块,每块默认复制3块;分配的数据节点放在一个pipeline里;Data Streamer将数据块写入pipeline中的第一个数据节点;第一个数据节点将数据块发送给第二个数据节点;第二个数据节点将数据发送给第三个数据节点;
步骤S35:DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功;
步骤S36:当客户端结束写入数据,则调用stream的close函数;此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功,最后通知元数据节点写入完毕;
步骤S37:如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除;失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点,元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028345.3A CN111198849A (zh) | 2020-01-10 | 2020-01-10 | 一种基于Hadoop的供电数据读写系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028345.3A CN111198849A (zh) | 2020-01-10 | 2020-01-10 | 一种基于Hadoop的供电数据读写系统及其工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111198849A true CN111198849A (zh) | 2020-05-26 |
Family
ID=70747156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010028345.3A Pending CN111198849A (zh) | 2020-01-10 | 2020-01-10 | 一种基于Hadoop的供电数据读写系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111198849A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220197607A1 (en) * | 2020-12-11 | 2022-06-23 | Ui Flow, Inc. | System and method for developing user interface applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030078946A1 (en) * | 2001-06-05 | 2003-04-24 | Laurie Costello | Clustered filesystem |
CN104113597A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 一种多数据中心的hdfs数据读写系统及方法 |
CN106294585A (zh) * | 2016-07-28 | 2017-01-04 | 四川新环佳科技发展有限公司 | 一种云计算平台下的存储方法 |
-
2020
- 2020-01-10 CN CN202010028345.3A patent/CN111198849A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030078946A1 (en) * | 2001-06-05 | 2003-04-24 | Laurie Costello | Clustered filesystem |
CN104113597A (zh) * | 2014-07-18 | 2014-10-22 | 西安交通大学 | 一种多数据中心的hdfs数据读写系统及方法 |
CN106294585A (zh) * | 2016-07-28 | 2017-01-04 | 四川新环佳科技发展有限公司 | 一种云计算平台下的存储方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220197607A1 (en) * | 2020-12-11 | 2022-06-23 | Ui Flow, Inc. | System and method for developing user interface applications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755415B2 (en) | Variable data replication for storage implementing data backup | |
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US11120152B2 (en) | Dynamic quorum membership changes | |
US10437721B2 (en) | Efficient garbage collection for a log-structured data store | |
US10534768B2 (en) | Optimized log storage for asynchronous log updates | |
US7127577B2 (en) | Distributed snapshot process | |
US8037264B2 (en) | Distributed snapshot process | |
US20070061379A1 (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster | |
JP5722962B2 (ja) | ストレージ性能の最適化 | |
EP2282276A1 (en) | System for client connection distribution according to system load | |
JP4615344B2 (ja) | データ処理システム及びデータベースの管理方法 | |
US8930364B1 (en) | Intelligent data integration | |
US20090049054A1 (en) | Method and apparatus for sequencing transactions globally in distributed database cluster | |
JP2017519258A (ja) | ワイド・エリア・ネットワーク上で同等の名前空間レプリカを用いる地理的に分散したファイルシステム | |
US9703853B2 (en) | System and method for supporting partition level journaling for synchronizing data in a distributed data grid | |
US20200133500A1 (en) | Preserving replication to a storage object on a storage node | |
US10803012B1 (en) | Variable data replication for storage systems implementing quorum-based durability schemes | |
US10885023B1 (en) | Asynchronous processing for synchronous requests in a database | |
CN110022338B (zh) | 文件读取方法、系统、元数据服务器和用户设备 | |
CN114564339A (zh) | 一种磁盘镜像文件跨平台迁移方法及系统 | |
US20220121523A1 (en) | Identifying database backup copy chaining | |
CN111198849A (zh) | 一种基于Hadoop的供电数据读写系统及其工作方法 | |
US11334456B1 (en) | Space efficient data protection | |
JP4512386B2 (ja) | バックアップシステムおよび方法 | |
CN112084156A (zh) | 混合存储系统及文件的自适应备份方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200526 |
|
RJ01 | Rejection of invention patent application after publication |