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