[size=x-large][b]1:什么是HDFS?[/b][/size]
[size=medium][b]HDFS适合做:[/b][/size]
1.存储大文件。上G、T甚至P。
[color=red]2.一次写入,多次读取。并且每次作业都要读取大部分的数据。[/color]
3.搭建在普通商业机群上就可以了。虽然会经常宕机,但HDFS有良好的容错机制。
[size=medium][b]HDFS不适合做:[/b][/size]
[color=red][b]1.实时数据获取。如果有这个需求可以用HBase。[/b][/color]
2.很多小文件。因为namenode要存储HDFS的metadata([size=large][color=red][b]比如目录的树状结构,每个文件的文件名、ACL(权限管理)、长度、owner、文件内容存放的位置等等信息[/b][/color][/size]),所以HDFS上文件的数目受到namenode内存的限制。
[color=red][b]3.并发环境下的写入和修改。[/b][/color]
hadoop中存储文件以HDFS形式存储,HDFS拥有自己的设计原则:
[b][color=blue]1:文件大小以block块的形式存储[/color][/b]
[color=red][b]2:每个块至少分配到三台DataNode(看集群情况而定)[/b][/color]
3:通过副本机制提高可靠度和吞吐量
4:hadoop1.0使用单一的master(NameNode)来协调存储元数据(metadata)
5:最有意思的是hadoop设计者没有设置客户端缓存机制,因为我们对处理数据有足够的信心。
下图为HDFS的系统结构
[img]http://dl2.iteye.com/upload/attachment/0123/5267/2e2cce75-5b1b-3061-9460-ac892c88d197.png[/img]
[color=red][size=medium][b]NameNode:主要存储元数据:例如:文件名,拷贝几份,分别备份到哪里;[/b][/size][/color]
过程大概如下:
client要向集群中写入数据,首先询问Master(NameNode),Master告知客户端向哪些DataNode写入数据,在往DataNode写入数据的同时,DataNode与NameNode保持心跳,如果DataNode在执行任务失败,NameNode会通过心跳机制得知DataNode死掉,将重新分配新的任务到其他的DataNode。
[color=red][size=x-large][b]2:Block之副本放置策略[/b][/size][/color]
第一副本:放置在上传文件DataNode,如果是集群外提交,由NameNode选择一台磁盘不太满,CPU不太忙的节点。
[color=blue][b]第二副本:放置在于第一副本不同的机架的节点上[/b][/color]
[color=red][b]第三副本:与第二个副本相同集群的节点[/b][/color]
也许根据业务的需要我们需要更多地副本,其他副本随机分配
[color=red][size=x-large][b]3:Block的存储形式[/b][/size][/color]
1:Block默认大小64M,如果上传文件小于64M,那么仍然占用一个命名空间(NameNode metadata),
但是物理存储不会占用64M空间;[b](这也是hadoop为什么不太适合处理小数据的原因之一)[/b]
2:[b][size=medium]Block大小和副本数由Client端上传文件到HDFS时设置[/size][/b],其中副本数可以变更,Block是不可以再上传后变更的。
hdfs文件存储目录 hdfs文件存储机制
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
minio + imgproxy 实现文件存储
通过 minio + imgproxy 实现类似 oss 的文件存储
minio imgproxy -
HDFS的shell操作
HDFS的Shell操作
HDFS hadoop 绝对路径 -
hdfs文件存储地址配置 hdfs存储路径
必须掌握的分布式文件存储系统—HDFSmp.weixin.qq.com HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。HDFS提供一个统一的抽象目录树,客户端可通过路径来访问文件,如hdfs:
hdfs文件存储地址配置 hdfs读写流程 hdfs通过接口退出安全模式 linux分布式文件存储挂载使用 session必须要使用文件存储 -
hdfs 指定缓存 hdfs存储文件
目录首先是HDFS的概述特性HDFS的架构HDFS角色的功能 NameNode
hdfs 指定缓存 hadoop 大数据 分布式 hdfs