Hadoop-HDFS总结(一)

HDFS优点

1.容错性高:
(1)数据在多个副本里自动保存,提高了容错性。
(2)某一副本丢失后可以自动恢复。
2.适合处理大量数据
(1)数据规模:可以处理GB,TB,甚至PB级别的数据。
(2)文件规模:可以大量的文件(百万规模)。
3.可以在廉价的机器上,通过多副本机制,提高可靠性。

HDFS缺点

1.不适合低延时数据访问,例如毫秒级数据访问。
2.无法高效对大量小文件进行存储。
(1)存储文件过小,会占用NameNode的内存来存储大量的文件目录和块信息,NameNode内存有限,故不可取。
(2)小文件的寻址时间会超过读取时间,这违反了HDFS设计的初衷。
3.不支持并发文件写入,文件随机修改。
(1)一个文件只能一个写,不能多个线程同时写。
(2)支持文件(append)追加,不支持文件随机修改。

HDFS组成架构

1.NameNode :主管,管理者
(1)管理HDFS名称空间。
(2)配置副本策略。
(3)管理数据块映射信息。
(4)处理客户端读写请求。
2.DataNode :Slave NameNode下达命令,DataNode执行操作。
(1)储存实际数据块。
(2)执行数据块读/写操作。
3.Client:客户端
(1)文件切分,文件上传HDFS的时候,Client将文件切成一个一个Block进行上传。
(2)与NameNode交互,获取文件信息。
(3)与DataNode交互,读取或写入数据。
(4)Client可以通过一些命令访问HDFS,比如对HDFS进行增删改查的操作。
(5)Client可以通过一些命令管理HDFS,比如NameNode格式化。
4.Secondary Namenode:NameNode的冷备,当NameNode挂掉的时候,并不能马上替换NameNode提供服务。
(1)辅助NameNode,分担工作量。
(2)紧急情况下,可以辅助恢复NameNode

HDFS文件块大小*

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在2.x版本中是128M,老版本是64M。
如果寻址时间为10ms,即查找目标所需要的时间为10ms。
寻址时间为传输时间的1%,则为最佳状态。因此传输时间=10ms/0.01=1000ms=1s
目前磁盘的传输速率普遍为100MB/s。
设置block大小=1s*100MB/s=100MB
HDFS块设置太小,会增加寻址时间,程序一直在找块开始的位置
块设置太大,从磁盘传输时间会明显大于定位这个块开始的时间,程序处理这块数据时,会非常慢
HDFS的块的大小设置取决于磁盘传输速率。

猜你喜欢

转载自blog.csdn.net/qq_45092505/article/details/104913046
今日推荐