本书系统阐述大数据的常用技术原理和框架,并精选实战案例深化大数据技术运用。全书共12个单元,内容包含大数据与Hadoop概述、大数据处理平台Hadoop的安装与配置、分布式文件系统HDFS、MapReduce和YARN技术、分布式数据库HBase、数据仓库Hive、大数据迁移工具Sqoop、分布式协调服务ZooKeeper、日志采集系统Flume、分布式消息发布订阅系统Kafka、大数据内存计算Spark及流式计算引擎Storm。 本书采用“项目引领、任务驱动”的编排模式,内容设计遵循由浅入深的认知规律,从基础原理逐步过渡到实战应用,系统规划教学内容体系。全书共设50个任务,在Hadoop、HDFS、MapReduce、HBase、Hive、Sqoop、ZooKeeper、Flume、Kafka、Spark和Storm等相关单元介绍环境搭建和项目案例,以便读者能更好地学习和掌握大数据的关键技术。
蒋道霞,教授,博士,江苏财经职业技术学院智能工程技术学院党总支书记,兼智能制造综合实训中心主任,江苏财经职业技术学院学术委员会主任,具备扎实的专业能力、教学能力、项目实践能力,出版过多部教材,承担过多项课题研究,先后获得多级奖项。
单元1 大数据与Hadoop概述 1
任务1.1 认识大数据 1
1.1.1 大数据是什么 2
1.1.2 大数据特征 2
1.1.3 大数据的发展助力 5
任务1.2 大数据关键技术 7
1.2.1 大数据处理流程 8
1.2.2 结构化、半结构化和非结构化数据 8
任务1.3 大数据处理架构Hadoop 9
1.3.1 Hadoop简介 9
1.3.2 Hadoop的特性 10
1.3.3 Hadoop的版本 10
1.3.4 Hadoop生态系统 11
1.3.5 Hadoop计算模式 13
1.3.5.1 离线批处理 13
任务1.4 大数据产业技术和应用领域 15
1.4.1 大数据产业技术 15
1.4.2 大数据的应用案例 15
1.4.3 大数据时代企业面临的挑战 16
单元总结 17
单元习题 17
单元2 Hadoop大数据处理平台的安装与配置 18
任务2.1 虚拟机VMware安装 19
2.1.1 认识虚拟机 19
2.1.2 虚拟机安装 20
任务2.2 Centos7安装与配置 21
2.2.1 Centos 7的安装 21
2.2.2 CentOS 7的配置 26
2.2.3 Centos7常用操作命令 34
任务2.3 WinSCP的安装与使用 37
2.3.1 下载WinSCP安装文件 38
2.3.2 WinSCP安装 38
2.3.3 WinScp应用 39
任务2.4 Xshell安装与使用 41
2.4.1 Xshell安装包准备下载 41
2.4.2 Xshell 5安装 41
任务2.5 Hadoop的安装模式 44
2.5.1 本地模式 44
2.5.2 伪分布模式 44
2.5.3 分布模式 44
任务2.6 JDK的安装和配置 45
2.6.1下载JDK 45
2.6.2 上传JDK到 CentOS7虚拟机 45
2.6.3 安装并配置JDK 46
任务2.7 Hadoop的本地模式安装和配置 47
2.7.1 下载Hadoop安装包 47
2.7.2 安装并配置Hadoop 环境 48
2.7.3 以本地模式配置Hadoop 49
2.7.4 验证Hadoop本地模式是否安装成功 49
任务2.8 Hadoop的伪分布模式安装和配置 51
2.8.1 以伪分布模式配置Hadoop的配置文件 51
2.8.2 格式化NameNode 53
2.8.3 启动Hadoop 53
2.8.4 验证Hadoop伪分布模式是否安装并启动成功 54
任务2.9 Hadoop的完全分布式安装 56
2.9.1 服务器规划 56
2.9.2 由master克隆出两台虚拟机slave1、slave1 56
2.9.3 启动3台虚拟机,配置slave1、slave2地址 57
2.9.4 设置主机名,将主机名与IP地址建立映射 59
2.9.5 配置关闭防火墙 60
2.9.6 配置免密码登录 60
2.9.7 搭建并测试hadoop集群环境 62
任务2.10 Hadoop HA安装部署 67
2.10.1 集群服务器准备 68
2.10.2 搭建并配置Zookeeper集群 69
2.10.3 搭建并配置hadoop集群 72
2.10.4 启动Hadoop集群 76
单元总结 83
单元习题 83
实验2.1 VMware虚拟机及Centos操作系统安装 83
实验2.2 Hadoop伪分布模式安装与应用 84
实验2.3 Hadoop完全分布模式安装 85
实验2.4 Hadoop HA模式安装 86
单元3 分布式文件系统HDFS 87
任务3.1 Hadoop HDFS架构 88
3.1.1 计算机集群结构 88
3.1.2 HDFS架构 88
任务3.2 HDFS体系结构 93
3.2.1 HDFS的体系结构 93
3.2.2 HDFS命名空间管理 94
3.2.3 HDFS通信协议 94
3.2.4 客户端Client 95
3.2.5 HDFS体系结构的局限性及改进措施 95
任务3.3 HDFS的数据存储策略 97
3.3.1 数据的冗余存储 97
3.3.2 数据的存放策略 97
3.3.3 数据的读写策略 98
任务3.4 HDFS容错 98
3.4.1 文件系统的容错 99
3.4.2 Hadoop自身的容错 99
任务3.5 Hadoop HDFS的数据读写过程 100
3.5.1 读数据的过程 100
3.5.2 写数据的过程 100
3.5.3 数据完整性 101
任务3.6 Hadoop HDFS命令 102
3.6.1 HDFS 常用命令总览 102
3.6.2 创建与查看HDFS目录 103
任务3.7 HDFS的Java API操作 104
3.7.1 大数据线下实验环境搭建 104
3.7.2 HDFS的Java API操作 111
单元总结 119
单元习题 119
实验3.1 HDFS实验操作 119
实验3.2 HDFS Java API实验操作 122
单元4 MapReduce和YARN技术 124
任务4.1 认识MapReduce 124
4.1.1 MapReduce体系结构 125
4.1.2 MapReduce工作流程 125
任务4.2 认识YARN 126
4.2.1 MapReduce1.0体系结构及缺陷 126
4.2.2 YARN的体系结构 127
4.2.3 YARN和Hadoop部署方式 128
任务4.3 MapReduce的工作机制 129
4.3.1 MapReduce的运行流程 129
4.3.2 YARN在MapReduce过程中的作用 130
任务4.4 用MapReduce编写WordCountApp实现单词统计 134
4.4.1 任务要求及程序代码 135
4.4.2 在IDEA中调试MapReduce程序统计单词个数 136
单元总结 143
单元习题 143
实验4 MapReduce编程实现单词统计 143
单元5 分布式数据库HBase 145
任务5.1 认识HBase 145
5.1.1 分布式数据存储系统BigTable 146
5.1.2 分布式数据库HBase 146
5.1.3 HBase与传统关系型数据库比较 146
5.1.4 HBase访问接口 148
5.1.5 HBase数据模型 148
任务5.2 HBase的实现原理 151
5.2.1 表和Region 152
5.2.2 HBase系统架构 153
5.2.3 Region服务器的工作原理 154
5.2.4 Store的工作原理 156
5.2.5 HLog的工作原理 156
5.2.6 Region的定位 156
任务5.3 HBase组件安装与配置 158
5.3.1 Zookeeper安装 159
5.3.2 HBase安装与配置 160
任务5.4 HBase常用Shell命令的使用 163
5.4.1 进入HBase shell 164
5.4.2 创建并查看普通表 164
5.4.3 创建namespace 164
5.4.4 给表增加数据 164
5.4.5 get方式查询数据 165
5.4.6 scan方式查询数据 165
5.4.7 指定条件查询数据 166
5.4.8 更新数据 166
5.4.9 使用delete删除某一列数据 167
5.4.10 使用deleteall删除整行数据 167
5.4.11 使用drop删除数据表 167
5.4.12 Filter过滤器使用 168
任务5.5 HBase Java API编程应用 169
5.5.1 环境准备 169
5.5.2 编写HBase Java API程序并执行 169
单元总结 180
单元习题 181
实验5.1 HBase组件安装 181
实验5.2 HBase实验操作 182
实验5.3 HBase JavaAPI编程应用 183
单元6 数据仓库Hive的安装部署 184
任务6.1 Hive架构和部署模式 185
6.1.1 Hive架构 185
6.1.2 内嵌模式 186
6.1.3 本地模式 186
6.1.4 远程模式 186
6.1.5 Hive和传统数据库的区别 187
任务6.2 安装并配置MySQL数据库 188
6.2.1 修改CentOS-Base.repo配置文件 189
6.2.2 查看系统已安装的mysql 189
6.2.3 卸载之前已安装的MySQL版本 190
6.2.4 安装自动下载工具wget 190
6.2.5 下载MySQL安装包 191
6.2.6 安装MySQL 191
6.2.7 安装MySQL服务 191
6.2.8 启动MySQL 192
6.2.9 修改MySQL临时密码 192
6.2.10 允许远程访问 194
6.2.11 修改MySQL允许任何人连接 194
任务6.3 Hive环境安装与配置 195
6.3.1 Hive安装包准备 196
6.3.2 解压Hive安装包 196
6.3.3 设置Hive环境变量 196
6.3.4 完成相关配置并添加依赖包 197
6.3.5 初始化MySQL元数据库 198
6.3.6 启动Hive 199
任务6.4 数据仓库Hive在数据处理中的应用 199
6.4.1 Hive命令说明 200
6.4.2 Hive数据定义 202
6.4.3 Hive数据操作 218
6.4.4 Hive数据查询 223
6.4.5 Hive视图 233
6.4.6 Hive函数 235
任务6.5 Hive在贷款数据分析中的应用 239
6.5.1 贷款数据分析任务要求 239
6.5.2 贷款数据分析任务实施 240
单元总结 250
单元习题 250
实验6.1 Hive组件安装 250
实验6.2 Hive在数据分析中的应用 251
单元7 大数据迁移工具Sqoop 253
任务7.1 Sqoop工作原理 253
7.1.1 Sqoop架构 253
7.1.2 Sqoop数据导入过程 254
7.1.3 Sqoop数据导出过程 255
任务7.2 Sqoop的安装和配置 256
7.2.1 下载sqoop安装包。 256
7.2.2 解压sqoop安装包到指定目录 256
7.2.3 修改配置文件sqoop-env.sh 256
7.2.4 拷贝MySQL的jdbc驱动包到sqoop/lib目录 257
7.2.5 配置configure-sqoop 258
7.2.6 修改/etc/profile 258
7.2.7 验证sqoop 258
任务7.3 用sqoop导入导出数据 259
7.3.1 用sqoop import进行数据导入 260
7.3.2 用sqoop export进行数据导出 266
单元总结 272
单元习题 272
实验7 Sqoop安装与应用 273
单元8 ZooKeeper分布式协调服务 274
任务8.1 ZooKeeper的基本概念和架构原理 274
8.1.1 ZooKeeper基本概念 275
8.1.2 Zookeeper服务架构组成 275
8.1.3 ZooKeeper关键特性 276
8.1.4 ZooKeeper与其他组件的关系 277
任务8.2 ZooKeeper客户端常用命令使用 278
8.2.1 Zookeeper启动操作 279
8.2.2 显示所有操作命令 279
8.2.3 查看当前ZNode中所包含的内容 279
8.2.4 查看当前节点详细数据 280
8.2.5 创建节点 280
8.2.6 修改节点数据值 283
8.2.7 删除节点 283
8.2.8 查看当前机器角色 284
单元总结 284
单元习题 284
实验8 Zookeeper安装及使用 284
单元9 日志采集系统Flume 286
任务9.1 Flume技术原理 286
9.1.1 认识Flume 287
9.1.2 Flume架构 287
9.1.3 Flume的基本概念 289
9.1.4 Flume关键特性 290
任务9.2 Flume安装与应用 292
9.2.1 Flume安装 292
9.2.2 Flume应用实践 293
单元总结 298
单元习题 298
实验9 Flume安装及使用 299
单元10 Kafka分布式消息订阅系统 300
任务10.1 Kafka技术原理 300
10.1.1 认识Kafka 301
10.1.2 Kafka应用场景 301
10.1.3 Kafka架构与功能 302
10.1.4 生产者(Producer) 302
10.1.5 消费者(Consumer) 303
10.1.6 Kafka主题(Topics) 303
10.1.7 Kafka分区(Partition) 303
10.1.8 Kafka 分区偏移量 304
任务10.2 Kafka组件安装与使用 304
10.2.1 Kafka安装 305
10.2.2 Kafka操作应用 307
单元总结 311
单元习题 311
实验10 Kafka安装与应用 311
单元11 大数据内存计算Spark 313
任务11.1 认识Spark 313
11.1.1 Spark应用场景 314
11.1.2 Spark的特点 314
11.1.3 Spark与MapReduce对比 314
11.1.4 Spark的生态系统 316
任务11.2 Spark原理与架构 318
11.2.1 Spark运行架构 318
11.2.2 RDD的设计与运行原理 320
11.2.3 RDD的算子 323
11.2.4 Spark SQL 324
任务11.3 Spark集群的安装部署 325
11.3.1 Spark运行模式 325
11.3.2 Spark on Yarn模式集群安装 326
11.3.3 Spark RDD操作实践 329
11.3.3.2 RDD常用转换操作 330
单元总结 334
单元习题 334
实验11 Spark组件安装与应用 334
单元12 Storm流式计算引擎 336
任务12.1 Storm技术原理 336
12.1.1 认识Storm 337
12.1.2 Storm特点 337
12.1.3 Storm的设计思想 337
12.1.3 Storm关键概念 338
12.1.4 Storm的系统架构 340
12.1.5 Storm与Hadoop对比 342
任务12.2 Storm组件安装 342
12.2.1 下载并安装软件包 343
12.2.2 配置环境变量 343
12.2.3 修改配置文件storm.yaml 343
12.2.4 启动Storm集群 344
任务12.3 Storm编程实践 345
12.3.1 Storm环境搭建 346
12.3.2 Storm并发机制编程实践 346
12.3.3 调整Worker进程个数 353
12.3.4 调整Executor线程个数 354
12.3.5 调整Task任务个数 354
单元总结 355
单元习题 355
实验12.1 Storm组件安装 356
实验12.2 Storm编程实践 357
参考文献 358