第1章 大数据时代 1
1.1 什么是大数据 1
1.2 大数据的四大特征 2
1.3 大数据的商用化 3
1.4 大数据分析 5
1.5 大数据与云计算的关系 5
1.6 大数据的国家战略 6
1.6.1 政府大数据的价值 7
1.6.2 政府大数据的应用场景 8
1.7 企业如何迎接大数据 8
1.7.1 评估大数据方案的维度 9
1.7.2 业务价值维度 10
1.7.3 数据维度 11
1.7.4 现有IT环境和成本维度 12
1.7.5 数据治理维度 13
1.8 大数据产业链分析 14
1.8.1 技术分析 14
1.8.2 角色分析 15
1.8.3 大数据运营 17
1.9 大数据交易 18
1.10 大数据之我见 19
第2章 大数据软件框架 20
2.1 Hadoop框架 20
2.1.1 HDFS(分布式文件系统) 21
2.1.2 MapReduce(分布式计算框架) 22
2.1.3 YARN(集群资源管理器) 25
2.1.4 Zookeeper(分布式协作服务) 28
2.1.5 Ambari(管理工具) 29
2.2 Spark(内存计算框架) 29
2.2.1 Scala 31
2.2.2 Spark SQL 32
2.2.3 Spark Streaming 33
2.3 实时流处理框架 34
2.4 框架的选择 35
第3章 安装与配置大数据软件 36
3.1 Hadoop发行版 36
3.1.1 Cloudera 36
3.1.2 HortonWorks 37
3.1.3 MapR 38
3.2 安装Hadoop前的准备工作 39
3.2.1 Linux主机配置 40
3.2.2 配置Java环境 41
3.2.3 安装NTP和python 42
3.2.4 安装和配置openssl 43
3.2.5 启动和停止特定服务 44
3.2.6 配置SSH无密码访问 44
3.3 安装Ambari和HDP 45
3.3.1 配置安装包文件 45
3.3.2 安装Ambari 46
3.3.3 安装和配置HDP 47
3.4 初识Hadoop 49
3.4.1 启动和停止服务 50
3.4.2 使用HDFS 51
3.5 Hadoop的特性 52
第4章 大数据存储:文件系统 53
4.1 HDFS shell命令 53
4.2 HDFS配置文件 55
4.3 HDFS API编程 57
4.3.1 读取HDFS文件内容 57
4.3.2 写HDFS文件内容 60
4.4 HDFS API总结 62
4.4.1 Configuration类 62
4.4.2 FileSystem抽象类 62
4.4.3 Path类 63
4.4.4 FSDataInputStream类 63
4.4.5 FSDataOutputStream类 63
4.4.6 IOUtils类 63
4.4.7 FileStatus类 64
4.4.8 FsShell类 64
4.4.9 ChecksumFileSystem抽象类 64
4.4.10 其他HDFS API实例 64
4.4.11 综合实例 67
4.5 HDFS文件格式 69
4.5.1 SequenceFile 70
4.5.2 TextFile(文本格式) 70
4.5.3 RCFile 70
4.5.4 Avro 72
第5章 大数据存储:数据库 73
5.1 NoSQL 73
5.2 HBase管理 74
5.2.1 HBase表结构 75
5.2.2 HBase系统架构 78
5.2.3 启动并操作HBase数据库 80
5.2.4 HBase Shell工具 82
5.3 HBase编程 86
5.3.1 增删改查API 86
5.3.2 过滤器 90
5.3.3 计数器 93
5.3.4 原子操作 94
5.3.5 管理API 94
5.4 其他NoSQL数据库 95
第6章 大数据访问:SQL引擎层 97
6.1 Phoenix 97
6.1.1 安装和配置Phoenix 98
6.1.2 在eclipse上开发phoenix程序 104
6.1.3 Phoenix SQL工具 108
6.1.4 Phoenix SQL语法 109
6.2 Hive 111
6.2.1 Hive架构 111
6.2.2 安装Hive 112
6.2.3 Hive和MySQL的配置 114
6.2.4 Hive CLI 115
6.2.5 Hive数据类型 115
6.2.6 HiveQL DDL 119
6.2.7 HiveQL DML 121
6.2.8 Hive编程 123
6.2.9 HBase集成 125
6.2.10 XML和JSON数据 127
6.2.11 使用Tez 128
6.3 Pig 130
6.3.1 Pig语法 131
6.3.2 Pig和Hive的使用场景比较 134
6.4 ElasticSearch(全文搜索引擎) 136
6.4.1 全文索引的基础知识 136
6.4.2 安装和配置ES 138
6.4.3 ES API 140
第7章 大数据采集和导入 143
7.1 Flume 145
7.1.1 Flume架构 145
7.1.2 Flume事件 146
7.1.3 Flume源 147
7.1.4 Flume拦截器(Interceptor) 148
7.1.5 Flume通道选择器(Channel Selector) 149
7.1.6 Flume通道 150
7.1.7 Flume接收器 151
7.1.8 负载均衡和单点失败 153
7.1.9 Flume监控管理 153
7.1.10 Flume实例 154
7.2 Kafka 155
7.2.1 Kafka架构 156
7.2.2 Kafka与JMS的异同 158
7.2.3 Kafka性能考虑 158
7.2.4 消息传送机制 159
7.2.5 Kafka和Flume的比较 159
7.3 Sqoop 160
7.3.1 从数据库导入HDFS 160
7.3.2 增量导入 163
7.3.3 将数据从Oracle导入Hive 163
7.3.4 将数据从Oracle导入HBase 164
7.3.5 导入所有表 165
7.3.6 从HDFS导出数据 165
7.3.7 数据验证 165
7.3.8 其他Sqoop功能 165
7.4 Storm 167
7.4.1 Storm基本概念 168
7.4.2 spout 169
7.4.3 bolt 171
7.4.4 拓扑 173
7.4.5 Storm总结 175
7.5 Splunk 175
第8章 大数据管理平台 177
8.1 大数据建设总体架构 177
8.2 大数据管理平台的必要性 178
8.3 大数据管理平台的功能 179
8.3.1 推进数据资源全面整合共享 179
8.3.2 增强数据管理水平 180
8.3.3 支撑创新大数据分析 180
8.4 数据管理平台(DMP) 180
8.5 EasyDoop案例分析 182
8.5.1 大数据建模平台 183
8.5.2 大数据交换和共享平台 184
8.5.3 大数据云平台 185
8.5.4 大数据服务平台 186
8.5.5 EasyDoop平台技术原理分析 188
第9章 Spark技术 192
9.1 Spark框架 192
9.1.1 安装Spark 193
9.1.2 配置Spark 194
9.2 Spark Shell 195
9.3 Spark编程 198
9.3.1 编写Spark API程序 198
9.3.2 使用sbt编译并打成jar包 199
9.3.3 运行程序 200
9.4 RDD 200
9.4.1 RDD算子和RDD依赖关系 201
9.4.2 RDD转换操作 203
9.4.3 RDD行动(Action)操作 204
9.4.4 RDD控制操作 205
9.4.5 RDD实例 205
9.5 Spark SQL 208
9.5.1 DataFrame 209
9.5.2 RDD转化为DataFrame 213
9.5.3 JDBC数据源 215
9.5.4 Hive数据源 216
9.6 Spark Streaming 217
9.6.1 DStream编程模型 218
9.6.2 DStream操作 221
9.6.3 性能考虑 223
9.6.4 容错能力 224
9.7 GraphX图计算框架 224
9.7.1 属性图 226
9.7.2 图操作符 228
9.7.3 属性操作 231
9.7.4 结构操作 231
9.7.5 关联(join)操作 233
9.7.6 聚合操作 234
9.7.7 计算度信息 235
9.7.8 缓存操作 236
9.7.9 图算法 236
第10章 大数据分析 238
10.1 数据科学 239
10.1.1 探索性数据分析 240
10.1.2 描述统计 241
10.1.3 数据可视化 241
10.2 预测分析 244
10.2.1 预测分析实例 244
10.2.2 回归(Regression)分析预测法 246
10.3 机器学习 247
10.3.1 机器学习的市场动态 248
10.3.2 机器学习分类 249
10.3.3 机器学习算法 251
10.4 Spark MLib 252
10.4.1 MLib架构 253
10.4.2 MLib算法库 253
10.4.3 决策树 257
10.5 深入了解算法 261
10.5.1 分类算法 262
10.5.2 预测算法 263
10.5.3 聚类分析 263
10.5.4 关联分析 264
10.5.5 异常值分析算法 266
10.5.6 协同过滤(推荐引擎)算法 267
10.6 Mahout简介 267
第11章 案例分析:环保大数据 268
11.1 环保大数据管理平台 268
11.2 环保大数据应用平台 269
11.2.1 环境自动监测监控服务 270
11.2.2 综合查询服务 272
11.2.3 统计分析服务 272
11.2.4 GIS服务 274
11.2.5 视频服务 274
11.2.6 预警服务 275
11.2.7 应急服务 276
11.2.8 电子政务服务 277
11.2.9 智能化运营管理系统 279
11.2.10 环保移动应用系统 279
11.2.11 空气质量发布系统 280
11.3 环保大数据分析系统 280
第12章 案例分析:公安大数据 281
12.1 总体架构设计 281
12.2 建设内容 282
12.3 建设步骤 284
附录1 数据量的单位级别 285
附录2 Linux Shell常见命令 286
附录3 Ganglia(分布式监控系统) 289
附录4 auth-ssh脚本 290
附录5 作者简介 292