在线客服
扫描二维码
下载博学谷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中。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据与人工智能对保险行业的风险控制与挑战
大数据与人工智能对保险行业的风险控制与挑战,万物互联、大数据与人工智能是改变根本的技术革命。它在很大程度上解决了困扰人类几千年的信息不充分、不对称的问题,极大地提高了人类整合资源、协调行动、科学决策的能力,必将引发一场空前的社会大变革。
10434
2019-04-11 14:11:31
如何搭建hadoop平台?详细步骤讲解
如何搭建hadoop平台?本文将详细讲解以下步骤:虚拟机及系统安装、在虚拟机中配置JAVA环境、修改hosts、修改hostname vim 、配置ssh、压缩包解压、修改hadoop配置文件、修改HBase配置、修改HBase配置、修改hive配置、修改sqoop配置、修改zookeeper配置等等,手把手指导大家搭建hadoop平台。
9478
2019-08-08 15:46:19
Flink从入门到实践课程介绍
Flink是解放程序员的一款开源大数据计算引擎,本文将为大家介绍Flink从入门到实践的课程详情,主要包括课程的学习内容、亮点特色和学习收获,对Flink感兴趣或者有学习需要的小伙伴可以看一看。
4890
2020-04-21 18:22:10
大数据开发工程师需要学习哪些知识点?
大数据开发工程师需要学习哪些知识点?大数据程序员需要有坚实的大数据技术理论基础、了解数据平台、掌握数据存储 HDFS、、日志解析及计算 MR、数据获取和预处理 Flume、结构化查询 Hive、数据获取和预处理 Sqoop、大数据调度框架Azkaban、Scala编程基础等相关知识。
6844
2020-09-03 14:13:34
成为数据工程师需要具备哪些技能?
数据工程工作存在于各个行业,在银行业、医疗保健业、大型科技企业、初创企业和其他行业找到工作机会。许多职位描述要求数据工程师、拥有数学或工程学位,但如果有合适的经验学位往往没那么重要。
6065
2021-03-23 16:36:52