在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
HDFS有着高容错性特点,且设计用来部署在低廉的硬件上,提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,可以实现流的形式访问文件系统中的数据。
Hadoop分布式文件系统HDFS是一种被设计成适合运行在通用硬件上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。它能提供高吞吐量的数据访问非常适合大规模数据集上的应用。
HDFS概念
HDFS(Hadoop Distributed File System)是 Apache Hadoop 项目的一个子项目. Hadoop 非常适于存储大型数据 (比如 TB 和 PB), 其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件, 并且提供统一的访问接口。

HDFS的四个基本组件:HDFS Client、NameNode、DataNode和Secondary NameNode。
HDFS采用主从结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。
Client
Client是客户端。HDFS Client文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。
NameNode
NameNode就是 master,它是一个主管、管理者。管理 HDFS 元数据(文件路径,文件的大小,文件的名字,文件权限,文件的block切片信息)。
NameNode管理 Block 副本策略:默认 3 个副本,处理客户端读写请求。
DataNode
DataNode就是Slave。NameNode下达命令,DataNode 执行实际的操作。DataNode存储实际的数据块,执行数据块的读/写操作。定时向namenode汇报block信息。
Secondary NameNode
SecondaryNameNode不是NameNode的备份。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。
辅助 NameNode,分担其工作量。在紧急情况下,可辅助恢复 NameNode。
副本机制
HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件。它将每个文件存储成一系列的数据块,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的。
为了容错,文件的所有block都会有副本。每个文件的数据块大小和副本系数都是可配置的。
在hadoop2 当中, 文件的 block 块大小默认是 「128M」(134217728字节)。

如图所示,一个大小为300M的a.txt上传到HDFS中,需要进行128M的切分,不足128M分为到另一block中。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据是什么?有什么巨大价值?
随着市场经济的不断发展以及互联网科技的快速提升,信息流通的价值也越来越大,马云曾指出我们即将进入DT的时代。因此大数据成为炙手可热的关键因素。大数据更像是矿藏,不只是因为他的量大,而更在于这些数据背后所带来的的价值以及利益。那大数据到底是什么?他的背后隐含着什么样的巨大价值呢?
8546
2019-08-09 18:04:03
大数据技术应用专业有哪些?主要做什么?
大数据概念持续火爆,其核心价值并非仅仅是数据量大,更重要的是在海量的数据背后所体现出来的应用价值。如果把大数据比作一种产业链的话,那么这个产业最终实现价值的关键在于,通过对数据的“加工处理”实现数据的“增值”。因此围绕大数据技术衍生出来大量的应用专业方向。都有哪些大数据技术应用专业呢?他们主要做什么工作呢?下面我们一起来看一下。
13191
2019-09-11 18:29:17
学完云计算和大数据好找工作吗?可以胜任哪些岗位呢?
学完云计算和大数据好找工作吗?可以胜任哪些岗位呢?随着云时代的发展,大数据也吸引了越来越多的目光。云计算和大数据早已成为不可分割的一体,掌握了云计算和大数据也就掌握了大数据常见的实时以及离线开发框架,具备架构设计以及开发能力,能够胜任 hadoop开发工程师,spark开发工程师,flink开发工程师等岗位。下面我们来看看学习云计算和大数据能找哪些工作。
9083
2019-10-15 09:18:35
程序员常用数据库有哪些?
数据库就是数据存储的仓库,任何互联网产品都需要使用数据库保存运营过程中所产生的各种数据。SQL是一种数据库查询语言和程序设计语言,主要就是用于管理数据库中的数据,如存取数据、查询数据、更新数据等。在大数据技术不断提升与应用的市场背景下,数据库技术也得到很大的发展,目前数据库产品非常多,最常用的数据库有:Oracle、DB2、MongoDB、SQLServer、MySQL等。
10459
2019-12-05 18:48:08
大数据开发和软件开发哪个前景好?
大数据开发学习有难度,零基础入门要先学习Java语言打基础,然后进入大数据技术体系的学习,学习Hadoop、Spark、Storm等知识。软件开发工程师根据不同的学科从事的岗位也千差万别。
6831
2020-10-15 09:41:45
