1.非结构化数据存储在上图中,描述了非结构化数据存储架构的基本组成部分,其中:1.文件存取统一接口,封装了对数据中心所以非结构化数据的读写操作接口。2.HadoopHDFS负责对大文件的存储,以HDFS:为文件协议标准3.HBase通过维护一张文件表完成对小文件的存储,以HBase:为文件协议标识1.1文件存取统一接口1.1.1文件存储接口对文件进行存储前,接口根据文件的大小和HDFS文件分块的配置大小进行比较,当文件超过设定大小时,接口认为该文件是大文件,直接分配到HDFS文件存储接口进行写入;否则当文件小与块大小时,根据系统维护的Hbase小文件存储通用存储表进行存储管理。1.对直接存储到HDFS的文件,则文件路径以HDFS为中心存储文件协议头,文件路径则根据该文件的业务属性做完文件的路径,文件名称保留原有名称,例如:HDFS://aaa/bbb.zip2.对通过Hbase管理的小文件,则文件路径以HBASE为中心存储文件协议头,文件路径不需要分文件夹,直接以文件的唯一标识标识即可,例如:HBASE://uuid1.1.2文件读取接口文件读取时,通过识别URL,确定文件的存储方式,然后找到对应的存储接口获取文件。1.1HadoopHDFS存储接口完成大文件的存储与读取接口操作。1.2Hbase存储接口文件通用存储表结构:表存在两个列簇,default列簇负责存储基础属性信息,用一个单独的列簇存储图片内容。HBase是采用面向列的存储模型,按列簇来存储和处理数据,即同一列簇的数据会连续存储。HBase在存储每个列簇时,会以Key-Value的方式来存储每行单元格(Cell)中的数据,形成若干数据块,然后把数据块保存到HFile中,最后把HFile保存到后台的HDFS上。由于用单元格(Cell)存储图片小文件的内容,上述存储数据的过程实际上隐含了把图片小文件打包的过程。默认情况下,HBase数据块限制为64KB。由于图片内容作为单元格(Cell)的值保存,其大小受制于数据块的大小。在应用中需根据最大图片大小对HBase数据块大小进行修改。具体修改方法是在表创建时,用HColumnDescriptor指定数据块大小,可分列簇指定,具体配置如下图: