大数据是指海量的数据,这些数据具有不同的表示形式和来源,如商业交易系统、移动应用程序、网站、客户数据库、机器生成的数据和物联网环境中使用的传感器生成的实时数据等,大量的数据通过可横向扩展的软件进行处理。大数据市场的增长率比全球信息技术市场的增长率高三倍以上,每年约为5%。大数据技术被广泛应用。它被用于搜索引擎、运输和物流、数据存储、视频和图片分析、电信、网络和社交媒体、医药和医疗保健、科学和研究以及社会生活等。
(1)数据采集与预处理
数据采集和预处理阶段吸收从各种来源大量生成的原始数据。这些原始数据是分散的,操作和维护也比较困难,并且可能会因异常而混乱,包括损坏的值、格式不良和不适合由大数据应用程序使用。将分散的数据整合在一起并写入数据仓库,便是数据采集的过程。此类数据需要过滤和清理、重新格式化和结构化、删除重复数据、移除非法值和数据压缩,这些预处理步骤对于将数据转换到适合或有价值的分析水平至关重要。
①FlumeNG作为一种实时的日志收集系统,能够自定义数据发送者,以此来进行数据收集,并对数据进行粗略处理和写入接收器。
②NDC,即网易数据运河系统,是一种平台解决方案,用于实时数据迁移,同步和预订结构化数据库。
③Chukwa:是一种构建在HDFS和MapReduce之上的数据收集机制,用于监控大型分布式集群;能够对大规模的日志进行记录和分析,它用一个灵活且强大的工具箱来显示、监控和分析收集到的数据并给出结果。
④SQOOP:一个旨在Hadoop和结构化数据库之间高效传输大量数据的工具。以Strom,SparkStreaming为代表的流计算工具,能够实时的清洗,聚合并分析不止一个的高吞吐量的数据源,而且能够及时的处理和反馈数据流。
(2)数据存储
①HDFS是Hadoop的重要组件之一,是完全面向文件的系统,用于存储底层文件。它具有许多副本,可以轻松获取数据并快速返回。将数据存储在HDFS中取决于其文件系统和一个称为Hbase的非关系数据库。它能够支持查询分析、交互式分析、迭代计算、键值存储、详细列表查询等应用场景,HDFS的性能可以影响到它往上的所有大数据系统以及应用。
②Hbase是一个完全非关系的、开源的、基于Hadoop的分布式数据库。它是面向列的键/值对数据库,其解决了HDFS在随机读写中存在的劣势,可用于低延迟执行。它可以提高表的更新速率,也可以支持水平分布的集群。Hbase表被称为Hstore。Hbase拥有许多的特性,例如实时查询,自然语言搜索,线性,模块化,自动和可配置的表共享访问。
③Redis:一种很迅速的非关系数据库,能够将键值对持久化,通过复制可提高读性能,用客户端分片可提高写入性能。当存储数据,相关的数据表可达数千列甚至更多,还包含多种繁琐的查询时。可考虑用列存储方法对数据进行压缩。如ORC便能够很好的进行压缩,大大缩减占据的磁盘空间。
(3)数据清洗
①MapReduce已经成为处理大规模数据的无处不在的工具,它是一个分布式并行计算软件框架,位于数据分析开发堆栈的核心。MapReduce的优势之一是能够在数以千计的商用服务器上横向扩展到大量数据,其拥有易于理解的编程语义,以及高容错率。MapReduce它可以拆分大文件然后将其发布到多个节点,以进行并行式处理,结束之后再对其归纳。当相关业务的数据量越来越多,需清理和调整的数据也更加复杂时,则需用Azkaban或Oozie等任务调动器进行更换和看管重要工作。
②Sloth是一种用于流计算任务的处理平台,它易于使用,实时且可靠,可节省用户在开发,运营和维护上的投资成本,满足各种产品对流计算需求越来越大的现状。
(4)数据查询分析
数据分析阶段是对海量数据的价值进行提炼的关键。数据分析阶段为收集的数据注入相关性和意义。这是一个复杂的进化过程,通过比较数据特征来进行模式识别,并根据领域知识或经验进行修正。分析结果旨在帮助用户了解当前状态,做出预测和明智的决策。
①Hive:数据仓库的基础架构,可提供数据汇总,适用于长期批查询和基于HDFS的大型数据集分析。可用Hive执行数据改动操作,Hive处理过的数据集用Impala对其执行快捷的数据分析。
②Hadoop和Spark是目前国内外在大数据的相关数据分析处理中,最具有代表性的分布式并行计算框架,主要用于数据存储以及并行计算。Spark具有与HadoopMapReduce相同的功能。它可不读取HDFS,因为其在内存中存储了中间Job的输出。Spark不仅可进行交互式查询,也能够改进迭代工作的负载。
(5)数据可视化
在大数据的可视化中,它主要用到了四项技术:数据简化,以及任务、管道、数据三者的并行化。Microsoft在Azure上的可视化平台以有向无环图和数据流图的形式向用户提供大数据分析任务,并取得了良好的效果。Alibaba的“御膳房”是国内的数据可视化平台的代表之一。目前由于内存技术的局限性,使大数据可视化工具还面临着许多技术困难,如尚不完善的可扩展性、功能性和响应时间等[4]。