目录
第1章 绪论 1
1.1 大数据的基本概念 1
1.2 大数据的价值和作用 4
1.3 大数据带来的思维方式变革 7
1.4 大数据处理技术基础 9
1.4.1 大数据处理的主要环节 9
1.4.2 大数据的技术支撑 11
1.4.3 流行的大数据技术 13
1.5 大数据面临的技术挑战 15
1.6 本章小结 16
1.7 习题 16
第2章 大数据实验环境构建 18
2.1 在Windows中安装Linux虚拟机 18
2.1.1 创建虚拟机 19
2.1.2 虚拟机启动初始化 21
2.1.3 克隆虚拟机 22
2.2 Linux操作基础 23
2.2.1 软件包管理工具 23
2.2.2 目录和文件操作 24
2.2.3 用户和权限管理命令 25
2.2.4 修改文件的访问权限 25
2.2.5 压缩和解压缩 27
2.2.6 网络配置命令 27
2.2.7 系统服务命令 28
2.2.8 查找命令 29
2.3 建立Linux集群 29
2.3.1 VMware Workstation的网络模式简介 30
2.3.2 集群规划和网络设置 31
2.3.3 配置虚拟机的网络参数 33
2.3.4 关闭防火墙和SELinux 36
2.3.5 SSH免密登录 37
2.4 Hadoop系统简介 41
2.4.1 Hadoop的生态系统 41
2.4.2 Hadoop集群的类型 42
2.5 构建Hadoop“伪分布式”集群 42
2.5.1 安装JDK 42
2.5.2 安装Hadoop软件 44
2.5.3 配置SSH免密登录 45
2.5.4 配置Hadoop 45
2.5.5 启动Hadoop 48
2.6 构建“完全分布式”Hadoop集群 49
2.6.1 配置Hadoop集群的主节点 49
2.6.2 将配置文件发送到从节点 52
2.7 测试Hadoop集群 52
2.7.1 测试HDFS 52
2.7.2 测试WordCount程序 56
2.8 安装Zookeeper 57
2.8.1 在“伪分布”模式下安装Zookeeper 57
2.8.2 在“完全分布”模式下安装Zookeeper 58
2.9 用Ambari构建和管理Hadoop集群 60
2.9.1 安装Ambari 61
2.9.2 用Ambari管理和配置Hadoop集群 61
2.10 本章小结 63
2.11 习题与实验 63
第3章 大数据采集与预处理 66
3.1 大数据采集概述 66
3.1.1 大数据的来源 66
3.1.2 数据容量的单位 67
3.1.3 大数据采集的基本方法 67
3.2 常用的大数据采集工具简介 68
3.2.1 基于Python的网页采集框架Scrapy 69
3.2.2 日志收集工具Flume 74
3.3 数据属性的类型 79
3.3.1 “属性”的类型 79
3.3.2 属性类型的转换 80
3.4 数据预处理 80
3.4.1 数据变换 81
3.4.2 数据清洗 84
3.4.3 使用OpenRefine清洗数据 86
3.4.4 数据集成 89
3.5 本章小结 91
3.6 习题 91
第4章 Hadoop分布式文件系统 94
4.1 Hadoop 94
4.1.1 Hadoop的发展历史 95
4.1.2 Hadoop的优势 96
4.1.3 Hadoop生态 96
4.1.4 Hadoop的核心组件 97
4.1.5 Hadoop集群与资源管理 99
4.1.6 Hadoop命令结构 102
4.2 HDFS体系结构 104
4.2.1 HDFS的设计目标 104
4.2.2 HDFS中的NameNode和DataNodes 105
4.2.3 文件系统命名空间(The File System Namespace) 108
4.2.4 数据容错 108
4.2.5 副本的管理与使用 109
4.3 HDFS初探 110
4.3.1 开始HDFS旅程 110
4.3.2 添加数据文件 111
4.3.3 从HDFS中下载文件 111
4.3.4 关闭HDFS 111
4.3.5 利用Web Console访问HDFS 111
4.4 HDFS常用CLI命令 113
4.4.1 HDFS CLI总览 113
4.4.2 常用HDFS文件操作命令 115
4.5 利用pyhdfs实现HDFS的文件访问 119
4.5.1 pyhdfs的安装与应用案例 120
4.5.2 pyhdfs的HdfsClient类 120
4.6 pyhdfs应用实战 133
4.7 本章小结 135
4.8 习题与实验 135
第5章 HBase基础与应用 137
5.1 HBase简介 137
5.2 HBase安装 138
5.3 HBase初探 139
5.4 HBase的数据模型 143
5.4.1 HBase数据模型相关术语 143
5.4.2 概念模式/视图(Conceptual View) 145
5.4.3 物理模式/视图(Physical View) 146
5.4.4 命名空间(Namespace) 147
5.5 HBase Shell 147
5.5.1 HBase Shell概述 147
5.5.2 创建表(create) 149
5.5.3 修改表/列族(alter table / column family) 153
5.5.4 添加数据(put) 155
5.5.5 获取行或单元(get) 156
5.5.6 扫描并输出数据(scan) 157
5.5.7 统计表的行数(count) 158
5.5.8 删除指定值(delete) 159
5.5.9 其他常用shell命令 160
5.5.10 HBase Shell中的对象引用 162
5.6 利用Jython实现HBase的访问 162
5.6.1 Jython环境设置 162
5.6.2 Jython访问HBase 163
5.6.3 利用scan变量HBase中的数据 164
5.7 本章小结 165
5.8 习题与实验 165
第6章 Hive基础与应用 167
6.1 Hive简介 167
6.1.1 数据库与数据仓库 168
6.1.2 Hive体系结构与接口 168
6.2 Hive的存储模型 169
6.3 Hive初探 171
6.4 Hive的数据定义―DDL 175
6.4.1 数据库的相关操作 175
6.4.2 数据表的创建 177
6.4.3 数据表和分区的修改 182
6.4.4 数据表的其他操作 189
6.5 Hive的数据操纵――DML 194
6.6 Hive的数据检索――Hive-QL 201
6.7 本章小结 206
6.8 习题与实验 207
第7章 分布式计算框架MapReduce 209
7.1 MapReduce概述 209
7.1.1 第一个MapReduce的Python程序 210
7.1.2 MapReduce工作原理 212
7.1.3 MapReduce作业的工作流程 212
7.1.4 MapReduce的输入/输出 214
7.2 WordCount实例详解 214
7.2.1 WordCount程序源码 214
7.2.2 WordCount程序执行 215
7.2.3 WordCount程序原理 216
7.3 Hadoop Streaming 217
7.3.1 Hadoop Streaming的工作原理 218
7.3.2 打包提交作业 218
7.3.3 Streaming工具的用法 219
7.3.4 常见问题应用技巧 222
7.4 MapReduce作业管理 223
7.5 MapReduce Python代码的测试 225
7.6 利用Python的迭代器和生成器优化wordCount程序 227
7.6.1 Python中的迭代器 227
7.6.2 Python中的生成器 228
7.6.3 itertools模块 229
7.6.4 优化wordCount程序 232
7.7 MapReduce程序设计模式 233
7.7.1 数据集介绍 233
7.7.2 聚合查询模式(Summarization Patterns) 235
7.7.3 过滤模式(Filtering Patterns) 241
7.7.4 数据连接模式(Join Patterns) 245
7.8 用MRJob库编写MapReduce程序 250
7.8.1 第一个MRJob程序 250
7.8.2 MRJob应用详解 253
7.8.3 MRJob的协议 256
7.8.4 MRJob的其余设置 259
7.9 本章小结 260
7.10 习题与实验 261
第8章 大数据分析与挖掘 262
8.1 数据的描述性分析 262
8.1.1 数据的集中趋势度量 262
8.1.2 数据的离散趋势度量 263
8.1.3 数据的偏态特性度量 266
8.1.4 数据相关性计算 267
8.2 回归分析 271
8.2.1 一元线性回归(Linear Regression) 271
8.2.2 其他类型的回归模型 274
8.3 分类算法简介 275
8.3.1 逻辑回归 275
8.3.2 近邻分类算法 277
8.3.3 决策树算法 279
8.4 聚类算法简介 285
8.4.1 主要的聚类算法类型 285
8.4.2 聚类质量度量指标 286
8.4.3 k-Means算法 288
8.5 分布式大数据挖掘算法典型案例 290
8.6 本章小结 295
8.7 习题与实验 296
第9章 大数据可视化 298
9.1 引言 298
9.2 大数据可视化的常用方法 300
9.2.1 趋势型大数据可视化方法 300
9.2.2 对比型大数据可视化方法 302
9.2.3 比例型大数据可视化方法 304
9.2.4 分布型大数据可视化 305
9.2.5 文本大数据可视化 306
9.2.6 关系网络大数据可视化 307
9.2.7 时空大数据可视化 308
9.2.8 层次结构大数据可视化 309
9.2.9 高维大数据可视化 310
9.3 大数据可视化常用工具简介 311
9.3.1 Tableau大数据可视化工具简介 312
9.3.2 Python的Matplotlib库简介 314
9.4 基于ECharts的可视化示例 318
9.4.1 ECharts使用准备 319
9.4.2 ECharts 基础概念概览 320
9.4.3 ECharts示例 320
9.5 本章小结 326
9.6 习题与实验 326
附录A HDFS交互命令 328
附录B pyhdfs其他类说明 339
参考文献 344
展开