hdfs的特点:1、高容错;2、流式数据访问;3、支持超大文件;4、高数据吞吐量;5、可构建在廉价的机器上;6、硬件故障;7、简单一致性模型;8、名字节点和数据节点。高容错是指,HDFS中的副本机制会自动把数据保存多个副本,容错性很高。
1、高容错
HDFS是可以由成百上千台服务器机器组成,每个服务器机器存储文件系统数据的一部分。HDFS中的副本机制会自动把数据保存多个副本,DataNode节点周期性地向NameNode发送心跳信号,当网络发生异常,可能导致DataNode与NameNode失去通讯,NameNode和DataNode通过心跳检测机制,发现DataNode宕机,DataNode中副本丢失,HDFS则会从其他DataNode上面的副本自动恢复,所以HDFS具有高的容错性。
2、流式数据访问
HDFS的数据处理规模比较大,应用程序一次需要访问大量的数据,同时这些应用程序一般都是批量的处理数据,而不是用户交互式处理,所以应用程序能以流的形式访问数据集,请求访问整个数据集要比访问一条记录更加高效。
3、支持超大文件
HDFS分布式文件系统具有很大的数据集,旨在可靠的大型集群上存储超大型文件(GB、TB、PB级别的数据),它将每个文件切分成多个小的数据块进行存储,除了最后一个数据块之外的所有数据块大小都相同,块的大小可以在指定的配置文件中进行修改,在Hadoop2.x版本中默认大小是128M。
4、高数据吞吐量
HDFS采用的是“一次写入,多次读取”这种简单的数据一致性模型,在HDFS中,一个文件一旦经过创建、写入、关闭后,一旦写入就不能进行修改了,只能进行追加,这样保证了数据的一致性,也有利于提高吞吐量。
5、可构建在廉价的机器上
Hadoop的设计对硬件要求低,无需构建在昂贵的高可用性机器上,因为在HDFS设计中充分考虑到了数据的可靠性、安全性和高可用性。
6、硬件故障
硬件故障是常态,而不是异常。整个HDFS系统将由数百或数千个存储着文件数据片段的服务器组成。实际上它里面有非常巨大的组成部分,每一个组成部分都很可能出现故障,这就意味着HDFS里的总是有一些部件是失效的,因此,故障的检测和自动快速恢复是HDFS一个很核心的设计目标。
7、简单一致性模型
大部分的HDFS程序对文件操作需要的是一次写多次读取的操作模式。一个文件一旦创建、写入、关闭之后就不需要修改了。这个假定简单化了数据一致的问题,并使高吞吐量的数据访问变得可能。一个Map-Reduce程序或者网络爬虫程序都可以完美地适合这个模型。
8、名字节点和数据节点
HDFS是一个主从结构,一个HDFS集群是由一个名字节点,它是一个管理文件命名空间和调节客户端访问文件的主服务器,当然还有一些数据节点,通常是一个节点一个机器,它来管理对应节点的存储。HDFS对外开放文件命名空间并允许用户数据以文件形式存储。
内部机制是将一个文件分割成一个或多个块,这些块被存储在一组数据节点中。名字节点用来操作文件命名空间的文件或目录操作,如打开,关闭,重命名等等。它同时确定块与数据节点的映射。数据节点负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指令。
名字节点和数据节点都是运行在普通的机器之上的软件,机器典型的都是GNU/Linux,HDFS是用java编写的,任何支持java的机器都可以运行名字节点或数据节点,利用java语言的超轻便性,很容易将HDFS部署到大范围的机器上。典型的部署是由一个专门的机器来运行名字节点软件,集群中的其他每台机器运行一个数据节点实例。体系结构不排斥在一个机器上运行多个数据节点的实例,但是实际的部署不会有这种情况。
延伸阅读
HDFS 的功能
- 数据的分布式存储和处理。
- Hadoop 提供了一个命令接口来与 HDFS 进行交互。
- namenode 和 datanode 的内置服务器可帮助用户轻松检查群集的状态。
- 对文件系统数据的流式处理访问。
- HDFS 提供文件权限和身份验证。
文章标题:hdfs有哪些特点,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35525