基于Hadoop海量图片存储平台设计与开发
基于Hadoop海量图片存储平台设计与开发
摘要:随着 Internet的飞速发展与深入应用,海量图片数据的存取问题显得越发突出,传统存储架构已突显管理效率不高、存储能力不足及成本太高等问题,Hadoop为我们提供了一种新的解决问题的思路,Hadoop可以充分利用集群的威力进行高速运算和存储,但是小文件过多时Hadoop的NameNode将导致内存出现瓶颈问题,使得系统效率变得极为低下。该文提出了一种基于Hadoop的、可对海量图片文件进行高效处理的存储架构,通过预处理模块的归类算法,并引入扩展一级索引机制,能较好地解决海量图片的处理问题,并避免内存瓶颈问题。实验表明,该系统易维护、具有良好的可扩展性,其稳定性、安全性、并发性均有较大改善。
关键词:海量图片;Hadoop;分布式计算;存储架构
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0135-03
Abstract: With fast development and deep appliance of the Internet, problem of mass image data storage stand out, so the problem of low management efficiency, low storage ability and high cost of traditional storage framework has appeared. The appearance of Hadoop provides a new thought. However, Hadoop itself is not suit for the handle of small files. This paper puts forward a storage framework of mass image files based on Hadoop, and solved the internal storage bottleneck of NameNode when small files are excessive through classification algorithm of preprocessing module and lead-in of high efficiency and first-level of index mechanism. The test manifests that the system is safe, easy to defend and has fine extension quality; as a result, it can reach to a fine effect.
Key words: Massive Images; Hadoop; Distributed Calculation;storage framework
1 背景
随着 Internet的飞速发展与深入应用,大型门户网站、电子商务网站及网络社区大量出现,这些网站都存储有大量图片,传统的技术架构在处理海量数据方面显得越来越乏力[1]。如何构建一个能高并发访问且廉价高效的图片存储管理系统已经成为一个亟待解决的问题。云存储概念的提出给我们提供了一种解决思路, Hadoop能够对海量数据进行分布式高效处理,然而, HDFS并不是为处理小文件而设计的[2][3],要用Hadoop来进行海量图片的存储及处理,必须对其进行改进。通过对Hadoop的HDFS、MapReduce技术的研究以及图片存储的业务需求分析[4],我们提出了一种基于Hadoop的海量图片存储模型。系统采用 Map Reduce 编程算法实现并行处理,可以对海量数据进行快速处理,充分利用低廉PC的处理能力,充分利用现有资源实现高并发、高可靠的应用。
2 平台总体设计
系统采用HA架构及平滑扩容,可用性和扩展性都较好,通过引入高效的扩展一级索引机制,可使系统快速定位到图片文件所在的序列文件及其偏移位置。通过建立图片存储模型,可实现在高并发高访问下图片存取的高扩展性和高容错性。通过负载均衡系统和缓存系统的设计,对各存储节点进行存储优化,使其存储稳定性得到较大提高。系统采用 MVC三层架构设计,分别是数据资源层、业务逻辑层、应用接口层。
数据资源层是整个平台的基础,是云存储系统的基础部分。存储设备可以采用多种光纤存储设备,如NAS、iSCSI等设备,也可以采用SCSI或SAS等DAS存储设备[5]。由一个统一的存储设备管理系统对存储设备进行管理,从而对物理存储设备实现逻辑虚拟化管理、多链路冗余管