在大数据环境中,数据源非常丰富,数据类型也多种多样。存储和分析的数据量巨大,对数据表示的要求很高,并且高度重视数据处理的效率和可用性。因此需要一些数据分析技术来完成。那么大数据有哪些关键技术大数据处理数据的基本处理流程与传统数据处理没有太大区别。主要区别在于:由于大数据必须处理大量的非结构化数据,因此可以在每个处理链接中使用MapReduce和其他方法进行并行处理。
1.数据系统的架构
大数据处理系统不管结构如何复杂,采用的技术千差万别,但是总体上总可以分为以下的几个重要部分。
从数据处理的一般流程可以看到,在大数据环境下需要的关键技术主要针对海量数据的存储和海量数据的运算。传统的关系数据库经过近40年的发展已经成为了一门成熟同时仍在不断演进的数据管理和分析技术,结构化查询语言(SQL)作为存取关系数据库的语言得到了标准化,其功能和表达能力也得到的不断增强。但是,关系数据管理系统的扩展性在互联网环境下遇到了前所未有的障碍,不能胜任大数据分析的要求。关系数据管理模型追求的是高度的一致性和正确性。纵向扩展系统,通过增加或者更换CPU、内存、硬盘以扩展单个节点的能力,终会遇到“瓶颈”。
2.分布式文件系统
文件系统是支持大数据应用的基础。Google是有史以来唯一需要处理如此海量数据的大公司。对于Google而言,现有的方案已经难以满足其如此大的数据量的存储,为此Google提出了一种分布式的文件管理系统——GFS。
GFS与传统的分布式文件系统有很多相同的目标,比如,性能、可伸缩性、可靠性以及可用性。但是,GFS的成功之处在于其与传统文件系统的不同。GFS的设计思路主要基于以下的假设:对于系统而言,组件失败是一种常态而不是异常。GFS是构建于大量廉价的服务器之上的可扩展的分布式文件系统,采用主从结构。通过数据分块、追加更新等方式实现了海量数据的高效存储,所示给出了GFS体系结构。但是随着业务量的进一步变化,GFS逐渐无法适应需求。Google对GFS进行了设计,实现了Colosuss系统,该系统能够很好地解决GFS单点故障和海量小文件存储的问题。
除了Google的GFS,众多的企业和学者也从不同的方面对满足大数据存储需求的文件系统进行了详细的研究。微软开发的Cosmos支撑其搜索、广告业务。HDFS、FastDFS、OpenAFS和CloudStore都是类似GFS的开源实现。类GFS的分布式文件系统主要针对大文件而设计,但是在图片存储等应用场景中,文件系统主要存储海量小文件,Facebook为此推出了专门针对海量小文件的文件系统Haystack,通过多个逻辑文件共享同一个物理文件,增加缓存层、部分元数据加载到内存等方式有效地解决了海量小文件存储的问题。Lustre是一种大规模、安全可靠的,具备高可靠性的集群文件系统,由SUN公司开发和维护。该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10 000个节点,数以拍字节的数量存储系统。
3.分布式数据处理系统
大数据的处理模式分为流处理和批处理两种。流处理是直接处理,批处理采用先存储再处理。
流处理将数据视为流,源源不断的数据形成数据流。当新的数据到来即立即处理并返回所需的结果。大数据的实时处理是一个极具挑战性的工作,数据具有大规模、持续到达的特点。因此,如果要求实时的处理大数据,必然要求采用分布式的方式,在这种情况下,除了应该考虑分布式系统的一致性问题,还将涉及到分布式系统网络时延的影响,这都增加了大数据流处理的复杂性。目前比较有代表性的开源流处理系统主要有:Twitter的Storm、Yahoo的S4以及Linkedin的Kafka等。
4.分布式数据库系统
传统的关系模型分布式数据库难以适应大数据时代的要求,主要的原因有以下几点:
1)规模效应带来的压力。大数据时代的数据远远超出单机处理能力,分布式技术是必然的选择。传统的数据库倾向于采用纵向扩展的方式,这种方式下性能的增加远低于数据的增加速度。大数据采用数据库系统应该是横向发展的,这种方式具有更好的扩展性。
2)数据类型的多样性和低价值密度性。传统的数据库适合结构清晰,有明确应用目的的数据,数据的价值密度相对较高。在大数据时代数据的存在的形式是多样的,各种半结构化、非结构化的数据是大数据的重要组成部分。如何利用如此多样、海量的低价值密度的数据是大数据时代数据库面临的重要挑战之一。
3)设计理念的冲突。关系数据库追求的是“一种尺寸适用所有”,但在大数据时代不同的应用领域在数据理性、数据处理方式以及数据处理时间的要求上千差万别。实际处理中,不可能存在一种统一的数据存储方式适应所有场景。
5.大数据系统的开源实现平台
除了商业化的大数据处理方案,还有一些开源的项目也在积极的加入到大数据的研究当中。Hadoop是一个开源分布式计算平台,它是MapReduce计算机模型的载体。借助于Hadoop,软件开发者可以轻松地编出分布式并行程序,从而在计算机集群上完成海量数据的计算。
主要结合大数据的产生背景、需求和系统结构,介绍了当前全球在大数据技术方面的进展情况。从分析可以看到,大数据系统的解决方案必将落地于现有的云计算平台。云计算平台的分布式文件系统、分布式运算模式和分布式数据库管理技术都为解决大数据问题提供了思路和现成的平台。
上述就是关于大数据有哪些关键技术的全部内容,想了解更多关于大数据的信息,请继续关注中培伟业。