7.3 关键技术
当前,大数据相关的关键技术按照大数据处理流程可分为数据采集与预处理、存储与管理、挖掘与利用三个阶段。同时,在数据安全与隐私保护问题上也有了新的技术趋势,下面分别进行梳理。
7.3.1 数据的采集清洗技术
当前大数据平台仍普遍采用集中式架构,为了应对分布化的数据采集和预处理需求,数据采集相关技术不断发展。以Apache Kafka为代表的开源流式数据采集探针已经成为Apache基金会顶级项目。对于互联网上的内容大数据,网络爬虫技术也不断发展,出现了一批如Apache Nutch、Scrapy等具有代表性的网络数据获取工具。当前,主流的数据采集工具普遍提供了具有高度封装特性的信息预处理和API提取等功能,便于开发者和使用者根据实际需要定制数据预处理方案。
7.3.2 数据的存储管理技术
以Hadoop组件HDFS和Yarn为核心的大数据存储和资源配置的核心生态系统已经基本构架完成。同时,以HBase等为代表的分布式列存储数据库、以Vertica等为代表的大规模并行处理(MPP)数据库、以Redis、MongoDB等为代表的NoSQL数据库等均为当前大数据存储提供积极的解决方案。用户可以根据实际应用的需要及处理业务的特点,选择适合的数据存储解决方案。在数据管理上,Hadoop生态系统构建初期,数据管理难度较大,一般的数据查询都需要编写Map/reduce程序来实现,门槛较高。近年来,为了迎合用户的传统使用习惯,大多数主流的大数据存储和计算解决方案均开发了SQL-like的查询接口,如内存计算模型Spark上的Spark SQL组件。而对于早期的存储环境,如HDFS、HBase等,则有第三方开发数据管理解决方案。例如,早期Cloudera公司开发的Impala系统,面向用户提供SQL语言接口,支持若干重要的SQL语句查询。其中,Impala系统的主要工作是将查询语言自动转化成标准的Map/reduce程序,对存储在HDFS等上的数据进行逻辑查询。
7.3.3 数据的挖掘分析技术
国际上知名的大规模机器学习工具库是Spark的MLlib,以社区形式接受开源开发者贡献算法。目前,MLlib已经同Spark SQL,Spark Steaming和GraphX一起作为Spark发布版本的核心组件之一,集成在Spark核心代码之中。MLlib包含了相当丰富的机器学习算法。据不完全统计,MLlib的功能目前包含了分类、回归、推荐、聚类、主题模型、频繁模式挖掘等多种机器学习算法。而更早的基于Hadoop的开源数据挖掘工具库是Mahout,它与MLlib完成的功能类似,但是它支撑的是存储在HDFS上的数据,且Mahout作为Apache基金会的独立顶级项目存在。国内发展大数据挖掘软件研发的历史也十分悠久。中科院计算所何清研究员团队研制了中国第一个基于Hadoop的并行数据挖掘软件PDMiner。近年来,国际上在大数据挖掘、机器学习软件方面,技术上不断追求降低用户使用门槛,推出了一批代表性的大数据机器学习平台型系统,如卡耐基梅隆大学计算机学院机器学习系教授邢波(Eric Xing)研发的大规模机器学习系统Petuum,中科院计算所徐君研究员团队研发的大规模机器学习平台EasyML等。这些平台系统采用便捷、灵活、简易的算法配置和使用方式,拉近了大数据机器学习算法与普通用户之间的距离,让更多人可以挖掘到大数据的价值。
7.3.4 深度学习
随着深度学习的普遍使用和被人们所熟知,使用深度学习技术深度挖掘分析大数据也成为一项重要需求。目前已有多种深度学习框架被广泛使用,从早期的Caffe、Torch到加拿大蒙特利尔大学 Bengio教授团队研发的 Theano、Google公司研发的 Tensorflow、CMU大学Smola教授团队研发的MXNet(现AWS运营)、微软公司研发的CNTK等,多种深度学习框架被提出使用。为了应对大数据的真实场景,许多框架在网络训练速度和分布化训练上做文章。目前,已经有多种框架支持多机多卡协同训练,不仅大幅提升了训练效率,也使得通过深度学习分析挖掘大数据成为可能。
7.3.5 区块链
随着数据越来越集中到互联网巨头和IT寡头手中,人们对数据安全和隐私泄露的担忧与日俱增。区块链作为一种新兴的分布式账本技术,具有去中心化、防篡改、可追溯等优点。利用区块链技术搭建去中心化的大数据管理、交易、共享平台,可以防止数据被滥用,有利于帮助数据确权,进而实现更加安全、可靠、可信、可用的数据治理机制,目前已成为新的趋势。限于区块链本身的存储能力有限,为解决大数据存储问题,区块链+星际文件系统(InterPlanetary File System,IPFS)是一种具有可行性的解决方案。