运城数据库编程开发hdfs文件系统

时间:2019-12-10 02:03 来源:  作者: admin666

我们在进行数据库架构的时候需要考虑到大量的数据存储问题,而今天我们就通过案例分析来了解一下,hdfs文件系统在大文件的数据存储上都有哪些优劣性。

运城数据库编程开发hdfs文件系统

1、概述

hdfs文件系统主要设计为了存储大文件的文件系统;如果有个TB级别的文件,我们该怎么存储呢?分布式文件系统未出现的时候,一个文件只能存储在个服务器上,可想而知,单个服务器根本就存储不了这么大的文件;退而求其次,就算一个服务器可以存储这么大的文件,你如果想打开这个文件,效率会高吗

hdfs的出现就是为了解决上面的问题

hdfs为了满足大文件的存储和可读性,对数据进行切成多个小块进行存储,同时为了保证数据的可靠性,又对每个小块数据做复制,然后分别存储到多个节点中

2、hdfs的结构体系

hdfs是一个分布式的文件系统,采用主从(master/slave)的结构体系,一个hdfs集群由NameNode和多个datanode组成,其中namenode作为主节点,DataNode为从节点

Namenode简称NN

DataNode简称DN

NN的作用

a、存储元数据信息

b、元数据存储两份,一份在内存中,一份在硬盘中

c、保存文件、block、datanode的映射关系

DN的作用

a、存储block信息

b、block存储在硬盘中

c、维护block和文件的映射关系

3、hdfs的优点

a、支持超大文件

支持超大文件,这里的超大文件几百MB,几百GB,甚至TB级别大小的文件,一般来说hadoop的文件系统会存储TB级别或者PB级别的数据,所以在企业节点中,数据节点可能有上千个

b、检测和快速应对硬件故障

在集群中环境中,硬件故障是常见的问题,因为有上千台服务器,这样会导致高故障率,因此故障检测和自动恢复是hdfs文件系统的一个设计目标

c、流式数据访问

Hdfs的数据处理规模比较大,应用一次要访问大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理,应用程序能以流的形式访问数据集,主要是数据的吞吐量,而不是访问速度;适合做离线数据的处理

d、简化的一致性模型

大部分hdfs操作文件时,需要一次写入,多次读取,在hdfs文件系统中,一个文件块一旦经过创建,写青青草在观免费观看久入,关闭后就不允许修改了,在hdfs2.7后,才允许对block进行追加修改,但是不能改变已有的数据,这样简单的一致性模型,保证数据操作的简单化

e、高容错性

数据自动保存多个副本,副本丢失自动恢复

f、可构建在廉价的机器上

构建在廉价的机器上,可以启动通过扩展机器个数里线性提高存储能力

4、hdfs的缺点

a、低延迟数据访问

低延迟数据,如果用户进行交互的应用,比如京东,需要数据在毫秒后者秒级范围内得到响应,由于hadoop对高吞吐模型做了优化,牺牲了获取数据的延迟,所以对于低延时的应用,不适合用hadoop,而且hdfs的数据也不是结构化的数据

b、不适合大量小文件

Hdfs支持超大的文件,是通过数据分别在不同的数据节点,数据的元数据保存在namenode上,namenode的内存大小决定了hdfs可以保存的文件数量,虽然现在内存已经很大,但是大量的小文件还是会影响namenode的节点性能,每个block会占用一片内存空间

c、不支持多次写入文件,修改文件

为了保证吞吐量,设计为这样

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。

上一篇:运城JavaScript编程开发事件应用类型分析
下一篇:没有了