CSOT工程师:那些数据怎么这么慢,服务器挂了么?老板还等着报告呢!

晓智:如果数据量大,一般的关系数据库是这样的,当读取的记录数很多时,就会出现这个问题

 

 

CSOT工程师:你们不是要搞大数据吗?如果数据量增加,那效率不是更慢吗?怎么搞啊

晓智:不用担心,大数据时代我们会使用新的数据库技术,叫HDFS

 

 

CSOT工程师:说人话!

晓智:HDFS的全称是:Hadoop Distribute Files System.

 

谈到大数据,我们往往想到的是当今主流的大数据技术框架:Hadoop。Hadoop 是一个由Apache基金会所开发的一个开源分布式计算平台。Hadoop能够让用户轻松架构和使用,并且能够让用户在其平台上开发运行处理海量数据的应用程序。它的两大核心技术是:分布式文件系统HDFS与分布式编程模型MapReduce。现在让我们来了解什么是分布式文件系统HDFS。

什么是HDFS?

HDFS的全称是:Hadoop Distribute Files System.在整个Hadoop技术体系中,HDFS提供了数据分布式存储的底层技术支持。

HDFS的存储原理

数据块

HDFS首先将海量数据文件以64M为基准,将文件分割成大量数据块,这些数据块是HDFS默认的基本存储单位,这么做的好处在于能够实现将一个100TB的大型数据文件进行分割并存放在许多500G的小硬盘之中的场景。

数据节点DataNode

若干个数据块被存储在数据节点(DataNode)之中,每个数据块在HDFS系统中均有多个备份文件,分别存储在不同的DataNode之中,提高了整个系统的安全性和可靠性。

中心服务器NameNode

HDFS集群中所有的DataNode均由一个中心服务器NameNode统一管理,NameNode负责管理整个文件系统的命名空间和控制着用户对文件的访问。它存储的不是数据,而是文件分了多少块,每个块都有哪些副本,分别存放在哪里DataNode上诸如此类的信息。

小助手SecondaryNameNode

SecondaryNameNode是NameNode的小助手,主要实现备份,日志管理等工作。

总而言之:DataNode是一个个存放数据的小仓库,而NameNode管理着这些小仓库。HDFS架构图如下:

 

HDFS的读取原理

当用户访问HDFS集群来读取数据时:

1)通过HDFS Client访问集群中的分布文件系统(DistributedFileSystem)。

2)DistributedFileSystem会在NameNode中查询用户所需数据的具***置。这些数据已经被HDFS分割成了数据块并备份多份分别存放在多个DataNode中。

3)DistributedFileSystem会优先把距离客户端近的数据块地址告知HDFS的 FSDataInputStream。让其建立与相应DataNode的链接,目标数据便从DataNode源源不断的流向HDFS Client。

 

HDFS优缺点

优点:

1)高容错性,数据保存多个副本,副本丢失自动恢复。

2)适合批处理,适合大数据处理。

3)可应用于廉价的商用机器集群上。

4)流式数据访问,读取整个数据集比读取一条数据更高效。

缺点:

1)无法高效存储大量小文件。

2)不适合低延迟数据访问。

 

CSOT工程师:那这样看来它也不能大小数据都通吃嘛?

晓智:是啊,所以我们的策略是'适合的才是最好的',放心,我们会从用户的角度来搭配最佳的数据存取方案,让我们飞得更远

是不是感觉特别有趣?学习大数据Hadoop是一件快乐的事情,但是学习hdfs也就更加有趣了~~~

怎么样?是不是有个大致的了解了?如果不了解的话,不要怕,小编还有好的方法,好的大数据各大知识点以及Hadoop的学习视频教程供你们学习,,,,

需要获取的话,就可以转发关注小编,后台私信小编“学习”来进行获取拉~~~