现如今,大数据是许多企业IT运营的重要组成部分。根据IDC预测,到2019年,大数据产值将达到1870亿美元。作为分析的重要因素,大数据决定着机器和人类商业智能和决策的基础。因此,无论从硬件还是软件角度出发,您面向大数据构建的基础设施都会对所支持大数据系统的分析与操作带来巨大影响。
大数据概念综述
大数据概念早在1980年,著名未来学家阿尔文·托夫勒提出的概念。2009年美国互联网数据中心证实大数据时代的来临。随着谷歌 MapReduce和GoogleFile System (GFS)的发布,大数据不再仅用来描述大量的数据,还涵盖了处理数据的速度。目前定义:大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具在合理时间内获取、管理、处理、并整理为帮助企业经营决策。
大数据目前分为四大块:大数据技术、大数据工程、大数据科学和大数据应用。
下面的文章中,我们将对决定大数据基础设施有效性的7大因素进行分析,有些因素的重要性是显而易见的,而有些则是非常微妙的。希望可以为着手构建大数据项目的您带去一些启示。
1. 大数据不仅是Hadoop
在普遍认知中,大数据和Hadoop几乎可以等同论之。但是事实上,大数据却不仅仅是Hadoop这么简单。Hadoop是一套文件系统(不是一个数据库),负责将数据传播至成百上千个处理节点中。
它被用于很多大数据应用之中,因为作为一个文件系统,它能够很好地处理非结构化数据——甚至包括一些看起来根本不算是数据的素材。但是Hadoop作为线下数据分析的利器并不适合当前大数据的需求。我们需要一种解决方案,一个包含了Hadoop又不限于Hadoop的方案,一个可以同时满足线上数据分析与线下数据分析双重功能的方案,一个可以同时满足强大数据分析和运营需求的方案。
2. Hive与Impala将数据库引入Hadoop
大数据世界中,还需要数据库对应结构化数据部分。如果大家希望为Hadoop数据平台加入一些秩序管理,那么Hive则是***选项。这是一款基础性结构工具,允许大家在非SQL Hadoop当中执行SQL类操作。Hive适合于长时间的批处理查询分析。
如果大家的一部分数据能够轻松旋转在结构化数据库当中,那么Impala则更为合适,Impala适合于实时交互式SQL查询,还能够直接利用您已经开发出的Hive命令。Hadoop、Hive与Impala皆属于Apache项目,因此其全部为开源成果——请随意使用。
3. Spark用于处理大数据
截至目前,我们已经探讨了数据的存储与整理。但是,我们该如何对数据进行实际操作呢?这时候我们就需要一套像Spark一样的分析与处理引擎。Spark也是属于Apache的一个项目,与其他大数据平台不同的特点,主要如下:
1)轻量级快速处理:大数据处理中速度往往被置于***位,Spark允许传统Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能快10倍。
2)易于使用:Spark支持多语言,允许Java、Scala、Python及R(Spark 1.4版***支持),自带80多个高等级操作符,允许在shell中进行交互式查询。
3)支持复杂查询:除了简单的map及reduce操作之外,Spark还支持filter、foreach、reduceByKey、aggregate以及SQL查询、流式查询等复杂查询。
4)实时的流处理:除了处理离线数据,Spark还能支持实时流计算。
5)与已存Hadoop数据整合:Spark不仅可以独立的运行,还可以读取已有的任何Hadoop数据。它可以运行在任何Hadoop数据源上,比如HBase、HDFS等。
Spark亦可用于处理存储在任意位置的各类数据,因为丰富的库选项使其拥有了极为广泛的访问能力。另外,由于其属于开源项目,因此大家能够随意修改其核心内容。
4. 在大数据基础上执行SQL操作
很多朋友可能非常熟悉SQL数据库构建与SQL查询编写工作。这方面专业知识在大数据领域同样适用。Presto是一套开源SQL查询引擎,允许数据科学家运用SQL查询来查询数据库,包括从Hive到专有商业数据库等各类数据库系统不限。像Facebook这类巨头级企业都在利用其进行交互查询,因此我们基本可以将Presto视为一套理想的大规模数据集交互式查询工具。
5.在线存储同样需要接地平台
大数据领域中有一部分任务,要求快速变更数据——有时需要定期添加数据,有时需要对变更数据进行分析等。无论如何,如果大家的数据拥有几乎对等的读取与写入频度,那么应当同时在本地与在线端保留数据副本。如果预算允许的情况下,使用固态存储无疑效果更好,因为这能够大大提升数据处理速度。
6. 云存储也是一个理想方式
在对大规模聚合数据库进行分析时,云存储将成为最为理想的存储平台。大家可以将数据聚合后传输至云端,运行分析,随后移除实例。数据处理不会受到互联网性能的影响。另外,如果大家将内部实时分析系统与云端深度分析方案加以结合,则能够***程度发挥大数据基础设施的全部潜力。
7. 不要忘记可视化
分析大数据是一回事,将分析结果通过显而易见的方式呈现给人们又是另外一回事。图像将能很好的帮助人们客观的理解分析结果,所以数据可视化正是实现这一效果的关键性工具。
幸运的是,目前市面上提供多种可视化处理方案,从JavaScript库到商业可视化软件包再到在线服务。大家可以选择一部分并加以尝试,同时了解用户的反馈意见以判断其效果。总而言之,可视化是实现大数据分析价值的***方式。
以上7点意见希望大家可以理解并运用到自身的大数据基础设施组建过程中,期待来自您的反馈意见和建议。