HDFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(TFS)
一、概述
手机图片或者像淘宝这样的网站中的产品图片特点:
(1)、大量手机用户同时在线,执行上传、下载、read等图片操作
(2)、文件数量较大,大小一般为几K到几十K左右
HDFS存储特点:
(1) 流式读取方式,主要是针对一次写入,多次读出的使用模式。写入的过程使用的是append的方式。
(2) 设计目的是为了存储超大文件,主要是针对几百MB,GB,甚至TB的文件
(3) 该分布式系统构建在普通PC机组成的集群上,大大降低了构建成本,并屏蔽了系统故障,使得用户可以专注于自身的操作运算。
HDFS与小图片存储的共通点和相悖之处:
(1) 都建立在分布式存储的基本理念之上
(2) 均要降低成本,利用普通的PC机构建系统集群
(1) HDFS不适合大量小文件的存储,因namenode将文件系统的元数据存放在内存中,因此存储的文件数目受限于namenode的内存大小。HDFS中每个文件、目录、数据块占用150Bytes。如果存放1million的文件至少消耗300MB内存,如果要存放1billion的文件数目的话会超出硬件能力
(2) HDFS适用于高吞吐量,而不适合低时间延迟的访问。如果同时存入1million的files,那么HDFS 将花费几个小时的时间。
(3) 流式读取的方式,不适合多用户写入,以及任意位置写入。如果访问小文件,则必须从一个datanode跳转到另外一个datanode,这样大大降低了读取性能。
二、HDFS文件操作流程
reading:
writing: