HDFS架构和原理

作者&投稿:束试 (若有异议请与网页底部的电邮联系)
~

之所以选择 HDFS 存储数据,因为 HDFS 具有以下优点:

当然 HDFS 也有它的劣势,并不适合所有的场合:

HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分

HDFS的文件读取原理,主要包括以下几个步骤:

HDFS的文件写入原理,主要包括以下几个步骤:

namenode如何选择在哪个datanode 存储副本(replication)?这里需要对可靠性、写入带宽和读取带宽进行权衡。Hadoop对datanode存储副本有自己的副本策略,在其发展过程中一共有两个版本的副本策略,分别如下所示

这样做的好处就是当NN内存受限时,能扩展内存,解决内存扩展问题,而且每个NN独立工作相互不受影响,比如其中一个NN挂掉啦,它不会影响其他NN提供服务,但我们需要注意的是,虽然有多个NN,分管不同的目录,但是对于特定的NN,依然存在单点故障,因为没有它没有热备,解决单点故障使用NameNode HA

2、NameNode HA

解决方案:

1、基于NFS方案
Active NN与Standby NN通过NFS实现共享数据,但如果Active NN与NFS之间或Standby NN与NFS之间,其中一处有网络故障的话,那就会造成数据同步问题
2、基于QJM方案
架构如下图

Active NN、Standby NN有主备之分,NN Active是主的,NN Standby备用的
集群启动之后,一个namenode是active状态,来处理client与datanode之间的请求,并把相应的日志文件写到本地中或JN中;
Active NN与Standby NN之间是通过一组JN共享数据(JN一般为奇数个,ZK一般也为奇数个),Active NN会把日志文件、镜像文件写到JN中去,只要JN中有一半写成功,那就表明Active NN向JN中写成功啦,Standby NN就开始从JN中读取数据,来实现与Active NN数据同步,这种方式支持容错,因为Standby NN在启动的时候,会加载镜像文件(fsimage)并周期性的从JN中获取日志文件来保持与Active NN同步
为了实现Standby NN在Active NN挂掉之后,能迅速的再提供服务,需要DN不仅需要向Active NN汇报,同时还要向Standby NN汇报,这样就使得Standby NN能保存数据块在DN上的位置信息,因为在NameNode在启动过程中最费时工作,就是处理所有DN上的数据块的信息
为了实现Active NN高热备,增加了FailoverController和ZK,FailoverController通过Heartbeat的方式与ZK通信,通过ZK来选举,一旦Active NN挂掉,就选取另一个FailoverController作为active状态,然后FailoverController通过rpc,让standby NN转变为Active NN
FailoverController一方面监控NN的状态信息,一方面还向ZK定时发送心跳,使自己被选举。当自己被选为主(Active)的时候,就会通过rpc使相应NN转变Active状态

3、结合HDFS2的新特性,在实际生成环境中部署图

这里有12个DN,有4个NN,NN-1与NN-2是主备关系,它们管理/share目录;NN-3与NN-4是主备关系,它们管理/user目录




HDFS组成架构及四大机制
Client :Secondary NameNode HDFS中的文件在物理上是分块存储(Block),快的大小可以通过配置参数(dfs.blcoksize)来规定,默认大小在Hadoop2.x中是128M,老版本中是64M。DataNode定期向NameNode 发送心跳报告 已告知自己的状态。心跳内容:心跳报告周期 NameNode判断DataNode宕机的基准: 连续 10次 ...

Hadoop系列之HDFS架构
NameNode和DataNode一般运行在GNU\/Linux操作系统上,HDFS使用Java语言开发的,因此NameNode和DataNode可以运行在任何支持Java的机器上,再加上Java语言的高度可移植性,使得HDFS可以发布在各种各样的机器上。一个HDFS集群中运行一个NameNode,其他机器每个运行一个(也可以多个,非常少见)DataNode。NameNode简化了系统的架构,只用...

遍历文件夹两种实现方式
广度优先搜索算法(Breadth-First-Search,缩写为 BFS),是一种利用队列实现的搜索算法。简单来说,其搜索过程和 “湖面丢进一块石头激起层层涟漪” 类似。深度优先搜索算法(Depth-First-Search,缩写为 DFS),是一种利用递归实现的搜索算法。简单来说,其搜索过程和 “不撞南墙不回头” 类似。BFS 的...

hadoop 1.x计算架构叫什么
前两步会返回一个FSDataInputStream对象,该对象会被封装成DFSInputStream对象,DFSInputStream可以方便的管理datanode和namenode数据流。客户端调用read方法,DFSInputStream最会找出离客户端最近的datanode并连接。 数据从datanode源源不断的流向客户端。 如果第一块的数据读完了,就会关闭指向第一块的datanode连接,接着读取...

程序员开发用到的十大基本算法
DFS属于盲目搜索。 深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用堆数据结构来辅助实现DFS算法。 算法步骤: 上述描述可能比较抽象,举个实例: DFS 在访问图中某一起始顶点 v 后,由 v 出发,访问它...

分布式存储有哪些
2.Ceph:一种分布式存储系统,可以提供高性能、高可靠性和高可扩展性的数据存储服务。3GlusterFS:一种分布式文件系统,可以处理大规模文件和数据存储需求。深信服的全对称分布式存储EDS采用高性能分布式块存储架构,支持文件、对象和块存储,具备高性能I\/O性能,同时可以满足非结构化和结构化数据的存储需求。...

fastdfs(鉴权与非鉴权)
关键词 :fastdfs 鉴权 架构 :环境信息 环境准备 :1、安装fastdfs 2、安装fastdfs tarcker服务:在tarcker机器上操作 3、安装nginx -- 四台机器操作 4、上传测试 至此非鉴权fastdfs安装完成

请教hadoop2.0的ha如何配置
dfs.ha.automatic-failover.enabled:是否开启NameNode失败自动切换。 dfs.ha.fencing.methods :配置隔离机制,通常为sshfence。 1.5 HDFS自动故障转移 HDFS的自动故障转移主要由Zookeeper和ZKFC两个组件组成。 Zookeeper集群作用主要有:一是故障监控。每个NameNode将会和Zookeeper建立一个持久session,如果NameNode失效,那么此se...

hdfs dfs -count 每一个数字是什么
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。

硬件工程师需要学哪些
硬件工程师是负责设计、开发和测试电子设备的专业人员。他们需要掌握一系列技能和知识,以便在各种工作环境中成功地完成任务。1、电子工程 硬件工程师首先需要掌握电子工程的基本理论和技术,理解电路设计、电子元器件的工作原理以及信号处理等。此外,也需要了解数字电路和模拟电路的设计和实现方法,并学习电路...

平乡县17330896896: hdfs是一个主从结构,一个hdfs集群是由什么组成 -
徵郝杏丁: :一个HDFS集群是由一个NameNode和若干个DataNode组成的. 其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据.

平乡县17330896896: hadoop分布式文件系统具有怎样的特性 -
徵郝杏丁: 硬件错误是常态而不是异常.HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据.我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分HDFS的组件是不工作的....

平乡县17330896896: 什么是分布式文件系统HDFS? -
徵郝杏丁: HDFS是基于流数据模式访问和处理超大文件的需求而开发的,它可以运行于廉价的商用服务器上.总的来说,可以将 HDFS的主要特点概括为以下几点: (1 )处理超大文件 这里的超大文件通常是指数百 MB、甚至数百TB 大小的文件.目前...

平乡县17330896896: 大数据都需要学什么? -
徵郝杏丁: 基础阶段:Linux、Docker、KVM、MySQL基础、Oracle基础、MongoDB、redis.hadoop mapreduce hdfs yarn:hadoop:Hadoop 概念、版本、历史,HDFS工作原理,YARN介绍及组件介绍. 大数据存储阶段:hbase、hive、sqoop. 大数据架...

平乡县17330896896: 有没有类似owncloud的私有云,还可以编辑word的程序 -
徵郝杏丁: 推荐题主试一下国产的kodexplorer(可道云).是一款类似于owncloud国产的私有云存储软件,个人觉得操作更方便,中文界面对中国人也更友好一些.操作界面使用了类似于windows一系列的拖拽、快捷键、鼠标右键等习惯,很快就可以上手.除了具备owncloud的功能外,比较特别的是这货基本上相当于一个小型在线操作系统了,基本支持所有格式,像图片、视频、音频、office文档、文本文档、程序文档等多种类型文件的在线预览、播放,编辑.具体到在线编辑word,目前貌似还没有私有云支持.免费版可道云支持在线预览word,据官网介绍授权版支持在线编辑office文档.

平乡县17330896896: 什么是Hadoop分布式文件系统 -
徵郝杏丁: 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.Hadoop是Apache软件基金会所研发的开放源码并行运算编程工具和分散式档案系统,与MapReduce和Google档案系统的概念类似. HDFS(Hadoop 分布式文件系统)是其中的一部分.

平乡县17330896896: hadoop是数据库技术吗 -
徵郝杏丁: Hadoop不是数据库技术.Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式文件系统(...

平乡县17330896896: Hadoop 怎么念 -
徵郝杏丁: 一、发音是:[hædu:p].二、简介:Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop实现了一个分布式文件系...

平乡县17330896896: 大数据的Hadoop是做什么的? -
徵郝杏丁: 提供海量数据存储zd和计算的.需要java语言基础.Hadoop实现了一个分布zd式文件系统(Hadoop Distributed File System),简称HDFS.有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供专高吞吐量来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算属回.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网