
本书从大数据架构的角度全面解析大数据技术及算法,探讨大数据的发展和趋势。不仅对大数据相关技术及算法做了系统性的分析和描述,梳理了大数据的技术分类,如基础架构支持、大数据采集、大数据存储、大数据处理、大数据展示及交互,还融合了大数据行业的最新技术进展和大型互联网公司的大数据架构实践,努力为读者提供一个大数据的全景画卷。
前 言 大数据被称为新时代的黄金和石油,相关技术发展迅猛,所应用的行业也非常广泛,从传统行业如医疗、教育、金融、旅游,到新兴产业如电商、计算广告、可穿戴设备、机器人等。大数据技术更是国家科技发展和智慧城市建设的基础。当前“互联网+”新业态的发展,其核心也是大数据的采集、分析、价值挖潜和应用。 当今全球大数据的竞争及战略布局,突出体现在大数据的技术创新和人才培养方面。技术创新能够保障在大数据发展的浪潮中始终处于引领地位,而大数据人才体系则是能最终实现技术创新和实践的根本。政府正在设立大数据局等管理和创新机构并开放政府数据,很多大型企业开始设立首席数据官(CDO)的职位,凸显对数据驱动的经济和业务模式的重视。未来5年全球将有数十万名的大数据人才缺口,以及数百万名大数据的管理和支持人员缺口,因此美国的哈佛商业评论把“数据科学家”称为21世纪最性感的职业,全球都在开始上演大数据的人才争夺战。 我们在《大数据革命——理论、模式与技术创新》一书中对数据科学理论、大数据创新模式以及大数据技术作了初步的探索和介绍,在成书的过程中我觉得如果有一本更深入、更全面的技术类的大数据书籍,能够更有效地帮助读者掌握和运用大数据,这也是写这本书的初衷。由于大数据技术是当今最前沿的技术,所涉及的领域及知识跨度都非常大,发展又日新月异,所以有些内容在开始写的同时,就面临老化的危险。过去一两年的时间里大数据技术的更新令人咋舌,老牌的Hadoop大数据处理平台已经成熟并广泛应用在诸多行业,而很多新兴的系统和算法,如加州大学伯克利分校研究开发的Spark大数据通用计算平台、用于图像和视频识别的深度学习大有后来居上的势头。因此我们也是尽量跟上形势,努力提供给读者一个大数据技术的全景画卷。 本书对大数据相关的技术及算法做了系统性的分析和描述,梳理了大数据的技术分类如基础架构支持、大数据采集、大数据存储、大数据处理、大数据展示及交互,列举了资源管理调度、数据分析和挖掘、深度学习、精准营销、社会计算等大数据相关算法,还融合了大数据行业的最新技术进展和大型互联网公司的大数据架构实践,目的是为了帮助大数据产业及技术人才全面认识和了解大数据的相关技术及算法,掌握大数据行业的最新发展动态,学习互联网巨头的大数据架构实践,进而培养大数据的技术选型和系统架构能力,成为大数据时代的创新创业先锋。 最后感谢电子科技大学极限网络计算与服务实验室的老师和同学们为本书所付出的辛勤和努力,也感谢清华大学苏州研究院大数据处理中心的行业应用实践为本书提供的指导和建议。我之前在微软的同事沈寓实和李雨航两位专家在云计算体系及安全防护方面提供了详细的资料和建议。我想向本书的责任编辑董亚峰先生和电子工业出版社的编辑们致敬,他们是本书的幕后英雄。我的妻子昆和女儿Sophie给予我最大的理解和支持,我爱你们。 由于我们对大数据相关技术及算法的理解和专业知识水平都有局限,本书的错误和疏漏之处在所难免,敬请各位读者谅解和指正。请将您的意见和建议发送至dyf@phei.com.cn,感谢您的支持。 赵 勇 2015年5月12日
目 录 第1章 大数据技术概述 1 1.1 大数据的概念 1 1.2 大数据的行业价值 4 1.3 大数据问题的爆发 9 1.4 大数据处理流程 12 1.5 大数据技术 13 1.5.1 基础架构支持 14 1.5.2 数据采集 14 1.5.3 数据存储 15 1.5.4 数据计算 16 1.5.5 展现与交互 18 1.6 练习题 19 参考文献 19 第2章 大数据基础支撑——数据中心及云计算 20 2.1 数据中心概述 20 2.1.1 云计算时代数据中心面临的问题 21 2.1.2 新一代数据中心关键技术 22 2.1.3 业界发展动态 24 2.1.4 小结 25 2.2 云计算简介 25 2.2.1 云计算定义 26 2.2.2 云计算主要特征 27 2.2.3 Web服务、网格和云计算 28 2.2.4 云计算应用分类 29 2.2.5 小结 31 2.3 大数据与云计算的关系 32 2.3.1 大数据是信息技术发展的必然阶段 33 2.3.2 云计算等新兴信息技术正在真正地落地和实施 34 2.3.3 云计算等新兴技术是解决大数据问题的核心关键 34 2.4 云资源调度与管理 35 2.4.1 云资源管理 36 2.4.2 云资源调度策略 38 2.4.3 云计算数据中心负载均衡调度 40 2.5 开源云管理平台OpenStack 44 2.5.1 OpenStack的构成 45 2.5.2 OpenStack各组件之间的关系 46 2.5.3 OpenStack的逻辑架构 47 2.5.4 小结 49 2.6 软件定义网络 49 2.6.1 起源与发展 50 2.6.2 OpenFlow标准和规范 50 2.6.3 OpenFlow的应用 53 2.7 虚拟机与容器 55 2.7.1 VM虚拟化与Container虚拟化 55 2.7.2 Docker 55 2.8 练习题 57 参考文献 57 第3章 云计算先行者——Google的三驾马车 59 3.1 Google的三驾马车 59 3.1.1 GFS——一个可扩展的分布式文件系统 59 3.1.2 MapReduce——一种并行计算的编程模型 64 3.1.3 BigTable——一个分布式数据存储系统 69 3.2 Google新“三驾马车” 77 3.2.1 Caffeine——基于Percolator的搜索索引系统 77 3.2.2 Pregel——高效的分布式图计算的计算框架 80 3.2.3 Dremel——大规模数据的交互式数据分析系统 85 3.3 练习题 89 参考文献 89 第4章 云存储系统 91 4.1 云存储的基本概念 91 4.1.1 云存储结构模型 91 4.1.2 云存储与传统存储系统的区别 94 4.2 云存储关键技术 95 4.2.1 存储虚拟化技术 95 4.2.2 分布式存储技术 97 4.3 云存储系统分类 98 4.3.1 分布式文件存储 99 4.3.2 分布式块存储 105 4.3.3 分布式对象存储 109 4.3.4 统一存储 117 4.4 其他相关技术 124 4.5 练习题 127 参考文献 127 第5章 数据采集系统 129 5.1 Flume 130 5.1.1 Flume架构 130 5.1.2 Flume核心组件 133 5.1.3 Flume环境搭建与部署 134 5.2 Scribe 139 5.2.1 Scribe架构 139 5.2.2 Scribe中的Store 140 5.2.3 Scribe环境搭建与部署 141 5.3 Chukwa 144 5.3.1 Chukwa的设计目标 144 5.3.2 Chukwa架构 145 5.3.3 Chukwa 环境搭建与部署 147 5.4 Kafka 150 5.4.1 Kafka架构 150 5.4.2 Kafka存储 152 5.4.3 Kafka的特点 152 5.4.4 Kafka环境搭建与部署 154 5.5 练习题 155 参考文献 155 第6章 Hadoop与MapReduce 156 6.1 Hadoop平台 156 6.1.1 Hadoop概述 156 6.1.2 Hadoop的发展简史 157 6.1.3 Hadoop的功能和作用 158 6.1.4 HDFS 159 6.1.5 HBase 162 6.2 MapReduce 171 6.2.1 第一代MapReduce(MRv1) 172 6.2.2 MapReduce 2.0——Yarn 180 6.3 Hadoop相关生态系统 184 6.3.1 交互式数据查询分析 184 6.3.2 数据收集、转换工具 187 6.3.3 机器学习工具 188 6.3.4 集群管理与监控 188 6.3.5 其他工具 189 6.4 Hadoop应用案例 191 6.5 练习题 192 参考文献 192 第7章 Spark——大数据统一计算平台 193 7.1 Spark简介 193 7.1.1 Spark 193 7.1.2 BDAS 195 7.2 RDD 197 7.2.1 RDD基本概念 197 7.2.2 RDD示例 199 7.2.3 RDD与分布式共享内存 200 7.3 Spark SQL 201 7.4 MLlib 203 7.5 GraphX 206 7.6 Spark Streaming 206 7.6.1 基本概念 207 7.6.2 编程模型 208 7.7 Spark的安装 210 7.7.1 单机运行Spark 210 7.7.2 使用Spark Shell与Spark交互 213 7.8 Shark、Impala、Hive对比 214 7.9 练习题 216 参考文献 216 第8章 Storm流计算系统 218 8.1 流计算系统 218 8.1.1 流计算系统的特点 218 8.1.2 流计算处理基本流程 219 8.2 Storm流计算框架 220 8.2.1 Storm简介 220 8.2.2 Storm关键术语 221 8.2.3 Storm架构设计 223 8.3 Storm编程实例 225 8.4 Storm应用 228 8.4.1 Storm应用场景 228 8.4.2 Storm应用实例 228 8.5 其他流计算框架 229 8.6 练习题 231 参考文献 231 第9章 SQL、NoSQL与NewSQL 232 9.1 传统SQL数据库 232 9.1.1 关系模型 232 9.1.2 关系型数据库的优点 233 9.1.3 关系型数据库面临的问题 234 9.2 NoSQL 234 9.2.1 NoSQL与大数据 235 9.2.2 NoSQL理论基础 235 9.2.3 分布式模型 238 9.2.4 NoSQL数据库分类 241 9.3 NewSQL 255 9.3.1 系统分类 255 9.3.2 Google Spanner 256 9.3.3 MemSQL 258 9.3.4 VoltDB 260 9.4 练习题 263 参考文献 263 第10章 大数据与数据挖掘 264 10.1 数据挖掘的主要功能和常用算法 264 10.1.1 数据挖掘的主要功能 264 10.1.2 常用算法 265 10.2 大数据时代的数据挖掘 280 10.2.1 传统数据挖掘解决方案 280 10.2.2 分布式数据挖掘解决方案 280 10.3 数据挖掘相关工具 282 10.3.1 Mahout 282 10.3.2 语言工具——Python 288 10.4 数据挖掘与R语言 289 10.4.1 R语言简介 289 10.4.2 R语言在数据挖掘上的应用 290 10.5 练习题 294 参考文献 294 第11章 深度学习 298 11.1 深度学习介绍 299 11.1.1 深度学习的概念 299 11.1.2 深度学习的结构 299 11.1.3 从机器学习到深度学习 301 11.2 深度学习基本方法 302 11.2.1 自动编码器 302 11.2.2 稀疏编码 304 11.3 深度学习模型 305 11.3.1 深度置信网络 306 11.3.2 卷积神经网络 308 11.4 深度学习的训练加速 310 11.4.1 GPU加速 310 11.4.2 数据并行 311 11.4.3 模型并行 312 11.4.4 计算集群 313 11.5 深度学习应用 313 11.5.1 Google 314 11.5.2 百度 314 11.5.3 腾讯Mariana 315 11.6 练习题 316 参考文献 316 第12章 电子商务与社会化网络大数据分析 318 12.1 推荐系统简介 318 12.1.1 推荐系统的评判标准 319 12.1.2 推荐系统的分类 319 12.1.3 在线推荐系统常用算法介绍 320 12.1.4 相关算法知识 323 12.2 计算广告 327 12.2.1 计算广告简介 327 12.2.2 计算广告发展阶段 327 12.2.3 计算广告相关算法 330 12.2.4 计算广告与大数据 332 12.2.5 大数据在计算广告中的应用案例 333 12.3 社交网络 333 12.3.1 社交网络中大数据挖掘的应用场景 334 12.3.2 社交网络大数据挖掘核心算法模型 334 12.3.3 图计算框架 335 12.3.4 大数据在社交网络中的应用案例 337 12.4 练习题 338 第13章 大数据展示与交互技术 339 13.1 数据可视化分类 339 13.1.1 按照展示内容进行划分 340 13.1.2 按照数据类型进行划分 341 13.2 可视化技术分类 351 13.2.1 2D展示技术 351 13.2.2 3D渲染技术 356 13.2.3 体感互动技术 360 13.2.4 虚拟现实技术 362 13.2.5 增强现实技术 364 13.2.6 可穿戴技术 365 13.2.7 可植入设备 368 13.3 练习题 369 参考文献 369 第14章 大数据安全与隐私 372 14.1 云计算时代安全与隐私问题凸显 372 14.2 云计算与大数据时代的安全挑战 374 14.2.1 大数据时代的安全需求 374 14.2.2 信息安全的发展历程 375 14.2.3 新兴信息技术带来的安全挑战 376 14.3 如何解决安全问题 380 14.3.1 云计算安全防护框架 381 14.3.2 基础云安全防护关键技术 384 14.3.3 创立本质安全的新型IT体系 387 14.4 隐私问题 389 14.4.1 防不胜防的隐私泄露 389 14.4.2 隐私保护的政策法规 390 14.4.3 隐私保护技术 391 14.5 练习题 393 参考文献 393 第15章 大数据技术发展趋势 394 15.1 实时化 394 15.2 内存计算 396 15.2.1 机遇与挑战 396 15.2.2 研究进展 397 15.2.3 发展展望 399 15.3 泛在化 399 15.3.1 发展现状 400 15.3.2 发展趋势 401 15.4 智能化 406 15.4.1 传统人工智能 406 15.4.2 基于大数据的人工智能 407 15.5 练习题 410 参考文献 410 第16章 知名企业大数据架构简介 411 16.1 腾讯 411 16.1.1 背景介绍 411 16.1.2 整体架构 412 16.2 淘宝 416 16.2.1 背景介绍 416 16.2.2 整体架构 416 16.3 Facebook 417 16.3.1 背景介绍 417 16.3.2 整体架构 418 16.3.3 技术架构展望 420 16.4 Twitter 420 16.4.1 背景介绍 420 16.4.2 整体架构 420 16.4.3 技术架构展望 422 16.5 Netflix 422 16.5.1 背景介绍 422 16.5.2 整体架构 423 16.5.3 Netflix个性化和推荐系统架构 426 16.6 练习题 430 参考文献 430