主编推荐语
全面梳理大数据相关技术,从数据、算法、策略、应用和系统架构等多个维度进行剖析。
内容简介
大数据是当前流行的热点概念之一,其已由技术名词衍生到对很多行业产生颠覆性影响的社会现象,作为明确的技术发展趋势之一,基于大数据的各种新型产品必将会对每个人的日常生活产生日益重要的影响。
本书从架构与算法的角度全面梳理了大数据存储与处理的相关技术。大数据技术具有涉及的知识点异常众多且正处于快速演进发展过程中等特点,其技术点包括底层的硬件体系结构、相关的基础理论、大规模数据存储系统、分布式架构设计、各种不同应用场景下的差异化系统设计思路、机器学习与数据挖掘并行算法以及层出不穷的新架构、新系统等。
本书对众多纷繁芜杂的相关技术文献和系统进行了择优汰劣并系统性地对相关知识分门别类地进行整理和介绍,将大数据相关技术分为大数据基础理论、大数据系统体系结构、大数据存储,以及包含批处理、流式计算、交互式数据分析、图数据库、并行机器学习的架构与算法以及增量计算等技术分支在内的大数据处理等几个大的方向。通过这种体系化的知识梳理与讲解,相信对于读者整体和系统地了解、吸收和掌握相关的技术有很大的帮助与促进作用。
本书的读者对象包括对NoSQL系统及大数据处理感兴趣的所有技术人员,以及有志于投身到大数据处理方向从事架构师、算法工程师、数据科学家等相关职业的在校本科生及研究生。
目录
- 版权信息
- 内容简介
- 前言
- 0 当谈论大数据时我们在谈什么
- 0.1 大数据是什么
- 0.2 大数据之翼:技术范型转换
- 0.3 大数据商业炼金术
- 0.4 “大数据”在路上
- 1 数据分片与路由
- 1.1 抽象模型
- 1.2 哈希分片(Hash Partition)
- 1.2.1 Round Robin
- 1.2.2 虚拟桶(Virtual Buckets)
- 1.2.3 一致性哈希(Consistent Hashing)
- 1.3 范围分片(Range Partition)
- 参考文献
- 2 数据复制与一致性
- 2.1 基本原则与设计理念
- 2.1.1 原教旨CAP主义
- 2.1.2 CAP重装上阵(CAP Reloaded)
- 2.1.3 ACID原则
- 2.1.4 BASE原则
- 2.1.5 CAP/ACID/BASE三者的关系
- 2.1.6 幂等性(Idempotent)
- 2.2 一致性模型分类
- 2.2.1 强一致性
- 2.2.2 最终一致性
- 2.2.3 因果一致性
- 2.2.4 “读你所写”一致性
- 2.2.5 会话一致性
- 2.2.6 单调读一致性
- 2.2.7 单调写一致性
- 2.3 副本更新策略
- 2.3.1 同时更新
- 2.3.2 主从式更新
- 2.3.3 任意节点更新
- 2.4 一致性协议
- 2.4.1 两阶段提交协议(Two-Phrase Commit,2PC)
- 2.4.2 向量时钟(Vector Clock)
- 2.4.3 RWN协议
- 2.4.4 Paxos协议
- 2.4.5 Raft协议
- 参考文献
- 3 大数据常用的算法与数据结构
- 3.1 布隆过滤器(Bloom Filter)
- 3.1.1 基本原理
- 3.1.2 误判率及相关计算
- 3.1.3 改进:计数Bloom Filter
- 3.1.4 应用
- 3.2 SkipList
- 3.3 LSM树
- 3.4 Merkle哈希树(Merkle Hash Tree)
- 3.4.1 Merkle树基本原理
- 3.4.2 Dynamo中的应用
- 3.4.3 比特币中的应用
- 3.5 Snappy与LZSS算法
- 3.5.1 LZSS算法
- 3.5.2 Snappy
- 3.6 Cuckoo哈希(Cuckoo Hashing)
- 3.6.1 基本原理
- 3.6.2 应用:SILT存储系统
- 参考文献
- 4 集群资源管理与调度
- 4.1 资源管理抽象模型
- 4.1.1 概念模型
- 4.1.2 通用架构
- 4.2 调度系统设计的基本问题
- 4.2.1 资源异质性与工作负载异质性
- 4.2.2 数据局部性(Data Locality)
- 4.2.3 抢占式调度与非抢占式调度
- 4.2.4 资源分配粒度(Allocation Granularity)
- 4.2.5 饿死(Starvation)与死锁(Dead Lock)问题
- 4.2.6 资源隔离方法
- 4.3 资源管理与调度系统范型
- 4.3.1 集中式调度器(Monolithic Scheduler)
- 4.3.2 两级调度器(Two-Level Scheduler)
- 4.3.3 状态共享调度器(Shared-State Scheduler)
- 4.4 资源调度策略
- 4.4.1 FIFO调度策略
- 4.4.2 公平调度器(Fair Scheduler)
- 4.4.3 能力调度器(Capacity Scheduler)
- 4.4.4 延迟调度策略(Delay Scheduling)
- 4.4.5 主资源公平调度策略(Dominant Resource Fair Scheduling)
- 4.5 Mesos
- 4.6 YARN
- 参考文献
- 5 分布式协调系统
- 5.1 Chubby锁服务
- 5.1.1 系统架构
- 5.1.2 数据模型
- 5.1.3 会话与KeepAlive机制
- 5.1.4 客户端缓存
- 5.2 ZooKeeper
- 5.2.1 体系结构
- 5.2.2 数据模型(Data Model)
- 5.2.3 API
- 5.2.4 ZooKeeper的典型应用场景
- 5.2.5 ZooKeeper的实际应用
- 参考文献
- 6 分布式通信
- 6.1 序列化与远程过程调用框架
- 6.1.1 Protocol Buffer与Thrift
- 6.1.2 Avro
- 6.2 消息队列
- 6.2.1 常见的消息队列系统
- 6.2.2 Kafka
- 6.3 应用层多播通信(Application-Level Multi-Broadcast)
- 6.3.1 概述
- 6.3.2 Gossip协议
- 参考文献
- 7 数据通道
- 7.1 Log数据收集
- 7.1.1 Chukwa
- 7.1.2 Scribe
- 7.2 数据总线
- 7.2.1 Databus
- 7.2.2 Wormhole
- 7.3 数据导入/导出
- 参考文献
- 8 分布式文件系统
- 8.1 Google文件系统(GFS)
- 8.1.1 GFS设计原则
- 8.1.2 GFS整体架构
- 8.1.3 GFS主控服务器
- 8.1.4 系统交互行为
- 8.1.5 Colossus
- 8.2 HDFS
- 8.2.1 HDFS整体架构
- 8.2.2 HA方案
- 8.2.3 NameNode联盟
- 8.3 HayStack存储系统
- 8.3.1 HayStack整体架构
- 8.3.2 目录服务
- 8.3.3 HayStack缓存
- 8.3.4 HayStack存储系统的实现
- 8.4 文件存储布局
- 8.4.1 行式存储
- 8.4.2 列式存储
- 8.4.3 混合式存储
- 8.5 纠删码(Erasure Code)
- 8.5.1 Reed-Solomon编码
- 8.5.2 LRC编码
- 8.5.3 HDFS-RAID架构
- 参考文献
- 9 内存KV数据库
- 9.1 RAMCloud
- 9.1.1 RAMCloud整体架构
- 9.1.2 数据副本管理与数据恢复
- 9.2 Redis
- 9.3 MemBase
- 参考文献
- 10 列式数据库
- 10.1 BigTable
- 10.1.1 BigTable的数据模型
- 10.1.2 BigTable的整体结构
- 10.1.3 BigTable的管理数据
- 10.1.4 主控服务器(Master Server)
- 10.1.5 子表服务器(Tablet Server)
- 10.2 PNUTS存储系统
- 10.2.1 PNUTS的整体架构
- 10.2.2 存储单元
- 10.2.3 子表控制器与数据路由器
- 10.2.4 雅虎消息代理
- 10.2.5 数据一致性
- 10.3 MegaStore
- 10.3.1 实体群组切分
- 10.3.2 数据模型
- 10.3.3 数据读/写与备份
- 10.4 Spanner
- 10.4.1 SpanServer软件栈
- 10.4.2 数据模型
- 10.4.3 TrueTime
- 参考文献
- 11 大规模批处理系统
- 11.1 MapReduce计算模型与架构
- 11.1.1 计算模型
- 11.1.2 系统架构
- 11.1.3 MapReduce计算的特点及不足
- 11.2 MapReduce计算模式
- 11.2.1 求和模式(Summarization Pattern)
- 11.2.2 过滤模式(Filtering Pattern)
- 11.2.3 组织数据模式(Data Organization Pattern)
- 11.2.4 Join模式(Join Pattern)
- 11.3 DAG计算模型
- 11.3.1 DAG计算系统的三层结构
- 11.3.2 Dryad
- 11.3.3 FlumeJava和Tez
- 参考文献
- 12 流式计算
- 12.1 流式计算系统架构
- 12.1.1 主从架构
- 12.1.2 P2P架构
- 12.1.3 Samza架构
- 12.2 DAG拓扑结构
- 12.2.1 计算节点
- 12.2.2 数据流
- 12.2.3 拓扑结构
- 12.3 送达保证(Delivery Guarantees)
- 12.3.1 Storm的送达保证机制
- 12.3.2 MillWheel的“恰好送达一次”机制
- 12.4 状态持久化
- 12.4.1 容错的三种模式
- 12.4.2 Storm的状态持久化
- 12.4.3 MillWheel和Samza的状态持久化
- 参考文献
- 13 交互式数据分析
- 13.1 Hive系数据仓库
- 13.1.1 Hive
- 13.1.2 StingerInitiative
- 13.2 Shark系数据仓库
- 13.2.1 Shark架构
- 13.2.2 部分DAG执行引擎(PDE)
- 13.2.3 数据共同分片
- 13.3 Dremel系数据仓库
- 13.3.1 Dremel
- 13.3.2 PowerDrill
- 13.3.3 Impala
- 13.3.4 Presto
- 13.4 混合系数据仓库
- 参考文献
- 14 图数据库:架构与算法
- 14.1 在线查询类图数据库
- 14.1.1 三层结构
- 14.1.2 TAO图数据库
- 14.2 常见图挖掘问题
- 14.2.1 PageRank计算
- 14.2.2 单源最短路径(Single Source Shortest Path)
- 14.2.3 二部图最大匹配
- 14.3 离线挖掘数据分片
- 14.3.1 切边法(Edge-Cut)
- 14.3.2 切点法(Vertex-Cut)
- 14.4 离线挖掘计算模型
- 14.4.1 以节点为中心的编程模型
- 14.4.2 GAS编程模型
- 14.4.3 同步执行模型
- 14.4.4 异步执行模型
- 14.5 离线挖掘图数据库
- 14.5.1 Pregel
- 14.5.2 Giraph
- 14.5.3 GraphChi
- 14.5.4 PowerGraph
- 参考文献
- 15 机器学习:范型与架构
- 15.1 分布式机器学习
- 15.1.1 机器学习简介
- 15.1.2 数据并行VS.模型并行
- 15.2 分布式机器学习范型
- 15.2.1 三种范型
- 15.2.2 MapReduce迭代计算模型
- 15.2.3 BSP计算模型
- 15.2.4 SSP模型
- 15.3 分布式机器学习架构
- 15.3.1 MapReduce系列
- 15.3.2 Spark及MLBase
- 15.3.3 参数服务器(Parameter Server)
- 参考文献
- 16 机器学习:分布式算法
- 16.1 计算广告:逻辑回归
- 16.1.1 逻辑回归(Logistic Regression,LR)
- 16.1.2 并行随机梯度下降(Parallel Stochastic Gradient Descent)
- 16.1.3 批学习并行逻辑回归
- 16.2 推荐系统:矩阵分解
- 16.2.1 矩阵分解方法
- 16.2.2 ALS-WR算法
- 16.2.3 并行版ALS-WR算法
- 16.3 搜索引擎:机器学习排序
- 16.3.1 机器学习排序简介
- 16.3.2 LambdaMART
- 16.3.3 分布式LambdaMART
- 16.4 自然语言处理:文档相似性计算
- 16.5 社交挖掘:谱聚类
- 16.5.1 社交挖掘实例
- 16.5.2 谱聚类
- 16.5.3 并行版谱聚类
- 16.6 深度学习:DistBelief
- 16.6.1 深度学习简介
- 16.6.2 DistBelief
- 参考文献
- 17 增量计算
- 17.1 增量计算模式
- 17.1.1 两种计算模式
- 17.1.2 Hadoop平台下增量计算的一般模式
- 17.2 Percolator
- 17.2.1 事务支持
- 17.2.2 “观察/通知”体系结构
- 17.3 Kineograph
- 17.3.1 整体架构
- 17.3.2 增量计算机制
- 17.4 DryadInc
- 参考文献
- 附录A 硬件体系结构及常用性能指标
- 附录B 大数据必读文献
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。