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的学习视频教程供你们学习,,,,
感觉是不是很全面?想要获取视频教程的话,关注小编,并转发此文;
2.添加V X: 17778119592 必填备注 :666 就可以免费领取啦;
教学资料小编会持续为大家更新的,有需要的小伙伴们可以关注小编哦,方便日后领取自己需要的资料.