作者:禅与计算机程序设计艺术
1.背景介绍
云计算已经成为热门话题。随着信息技术、IT业发展的不断推进以及互联网、物联网等新兴技术的出现,云计算也面临着越来越多的挑战。云计算包括数据中心、网络、服务器、软件、应用、基础设施、硬件等全套服务,能够让用户通过网络实现自助式部署、扩展性以及按需付费,实现弹性伸缩,提高资源利用率和节省成本。云计算也涉及到大数据的处理和存储。基于海量数据的大数据分析工作,需要对数据进行存储、处理、分析以及实时响应。
数据在云端的处理与存储可以分为三个层次:第一层是分布式存储,主要用途是存放各种类型的数据;第二层是分布式计算,主要是用来分析和挖掘数据;第三层是实时数据分析平台,能提供实时的业务查询和分析功能。如图1所示,从数据存储、分析、实时响应等角度,整个云计算环境由多个不同组件构成,这些组件均由云服务商提供。而在这个过程中,如何存储和管理海量数据也是非常重要的问题。如何更有效地存储大量数据,使得云端应用程序快速访问、处理、分析?
目前,云计算数据存储领域研究的主要方向是分布式文件系统和NoSQL数据库。分布式文件系统将文件存储在多个节点上,并采用分布式存储方案,如HDFS、GlusterFS等;NoSQL数据库则是一种非关系型数据库,它能提供低延迟的读写性能,适合用于存储结构化和半结构化数据,如HBase、MongoDB等。但无论是分布式文件系统还是NoSQL数据库,它们都存在一些共性和不同之处,如可用性、容错性、可伸缩性、易用性等。因此,如何结合分布式文件系统和NoSQL数据库,构建出一套满足多样性、弹性、可用性等要求的大数据存储方案,也是值得探索的研究课题。