大数据技术与应用丛书 Hadoop大数据技术原理与应用
作 者: 黑马程序员 著
出版时间:2019
丛编项: 大数据技术与应用丛书
内容简介
本书围绕Hadoop生态圈相关系统介绍大数据处理架构。全书共11章,其中,第1、2章主要带领大家认识Hadoop以及学会搭建Hadoop集群;第3~5章讲解分布式文件系统(HDFS)、分布式计算框架MapReduce以及分布式协调服务;第6章讲解Hadoop 2.0新特性,包含YARN和高可用特性;第7~10章主要讲解Hadoop生态圈的相关辅助系统,包括Hive、Flume、Azkaban和Sqoop;第11章是一个综合项目——网站流量日志数据分析系统,目的是教会大家如何利用Hadoop生态圈技术构建大数据系统架构并进行开发,同时加深对Hadoop技术的理解。本书附有配套视频、源代码、习题、教学设计、教学课件等资源。同时,为了帮助初学者更好地学习本书中的内容,还提供了在线答疑,欢迎读者关注。本书可作为高等院校本、专科计算机相关专业,信息管理等相关专业的大数据课程教材,也可供相关技术人员参考,是一本适合广大计算机编程爱好者的优秀读物。
目录
目录
第1章初识Hadoop1
1.1大数据概述1
1.1.1什么是大数据1
1.1.2大数据的特征2
1.1.3研究大数据的意义3
1.2大数据的应用场景4
1.2.1医疗行业的应用4
1.2.2金融行业的应用4
1.2.3零售行业的应用5
1.3Hadoop概述6
1.3.1Hadoop的前世今生6
1.3.2Hadoop的优势7
1.3.3Hadoop的生态体系7
1.3.4Hadoop的版本9
1.4本章小结11
1.5课后习题11
第2章搭建Hadoop集群13
2.1安装准备13
2.1.1虚拟机安装13
2.1.2虚拟机克隆22
2.1.3Linux系统网络配置24
2.1.4SSH服务配置28
2.2Hadoop集群搭建31
2.2.1Hadoop集群部署模式31
2.2.2JDK安装32
2.2.3Hadoop安装33
2.2.4Hadoop集群配置35
2.3Hadoop集群测试38
2.3.1格式化文件系统38目录Hadoop大数据技术原理与应用2.3.2启动和关闭Hadoop集群39
2.3.3通过UI查看Hadoop运行状态41
2.4Hadoop集群初体验43
2.5本章小结46
2.6课后习题46
第3章HDFS分布式文件系统48
3.1HDFS的简介48
3.1.1HDFS的演变48
3.1.2HDFS的基本概念50
3.1.3HDFS的特点51
3.2HDFS的架构和原理52
3.2.1HDFS存储架构52
3.2.2HDFS文件读写原理53
3.3HDFS的Shell操作55
3.3.1HDFS Shell介绍55
3.3.2案例——Shell定时采集数据到HDFS58
3.4HDFS的Java API操作62
3.4.1HDFS Java API介绍62
3.4.2案例——使用Java API操作HDFS63
3.5本章小结68
3.6课后习题69
第4章MapReduce分布式计算框架70
4.1MapReduce概述70
4.1.1MapReduce核心思想70
4.1.2MapReduce编程模型71
4.1.3MapReduce编程实例——词频统计72
4.2MapReduce工作原理73
4.2.1MapReduce工作过程73
4.2.2MapTask工作原理74
4.2.3ReduceTask工作原理75
4.2.4Shuffle工作原理76
4.3MapReduce编程组件77
4.3.1InputFormat组件77
4.3.2Mapper组件78
4.3.3Reducer组件78
4.3.4Partitioner组件80
4.3.5Combiner组件80
4.3.6OutputFormat组件81
4.4MapReduce运行模式82
4.5MapReduce性能优化策略84
4.6MapReduce经典案例——倒排索引86
4.6.1案例分析86
4.6.2案例实现89
4.7MapReduce经典案例——数据去重93
4.7.1案例分析93
4.7.2案例实现93
4.8MapReduce经典案例——TopN96
4.8.1案例分析96
4.8.2案例实现97
4.9本章小结100
4.10课后习题100
第5章Zookeeper分布式协调服务102
5.1初识Zookeeper102
5.1.1Zookeeper简介102
5.1.2Zookeeper的特性103
5.1.3Zookeeper集群角色103
5.2数据模型104
5.2.1数据存储结构104
5.2.2Znode的类型105
5.2.3Znode的属性105
5.3Zookeeper的Watch机制106
5.3.1Watch机制的简介106
5.3.2Watch机制的特点106
5.3.3Watch机制的通知状态和事件类型107
5.4Zookeeper的选举机制107
5.4.1选举机制的简介107
5.4.2选举机制的类型108
5.5Zookeeper分布式集群部署109
5.5.1Zookeeper安装包的下载安装109
5.5.2Zookeeper相关配置109
5.5.3Zookeeper服务的启动和关闭112
5.6Zookeeper的Shell操作113
5.6.1Zookeeper Shell介绍113
5.6.2通过Shell命令操作Zookeeper113
5.7Zookeeper的Java API操作119
5.7.1Zookeeper Java API介绍119
5.7.2通过Java API操作Zookeeper120
5.8Zookeeper典型应用场景122
5.8.1数据发布与订阅122
5.8.2统一命名服务123
5.8.3分布式锁123
5.9本章小结123
5.10课后习题124
第6章Hadoop 2.0新特性125
6.1Hadoop 2.0改进与提升125
6.2YARN资源管理框架125
6.2.1YARN体系结构125
6.2.2YARN工作流程127
6.3HDFS的高可用128
6.3.1HDFS的高可用架构128
6.3.2搭建Hadoop高可用集群129
6.4本章小结134
6.5课后习题135
第7章Hive数据仓库136
7.1数据仓库简介136
7.1.1什么是数据仓库136
7.1.2数据仓库的结构137
7.1.3数据仓库的数据模型138
7.2Hive简介140
7.2.1什么是Hive140
7.2.2Hive系统架构141
7.2.3Hive工作原理141
7.2.4Hive数据模型142
7.3Hive的安装143
7.3.1Hive安装模式简介143
7.3.2嵌入模式144
7.3.3本地模式和远程模式145
7.4Hive的管理147
7.4.1CLI方式147
7.4.2远程服务148
7.5Hive内置数据类型150
7.6Hive数据模型操作151
7.6.1Hive数据库操作151
7.6.2Hive内部表操作153
7.6.3Hive外部表操作157
7.6.4Hive分区表操作158
7.6.5Hive桶表操作163
7.7Hive数据操作166
7.8本章小结170
7.9课后习题170
第8章Flume日志采集系统172
8.1Flume概述172
8.1.1Flume简介172
8.1.2Flume运行机制172
8.1.3Flume日志采集系统结构图173
8.2Flume基本使用175
8.2.1Flume系统要求175
8.2.2Flume安装配置175
8.2.3Flume入门使用177
8.3Flume采集方案配置说明181
8.3.1Flume Sources181
8.3.2Flume Channels184
8.3.3Flume Sinks186
8.4Flume的可靠性保证189
8.4.1负载均衡189
8.4.2故障转移195
8.5Flume拦截器196
8.6案例——日志采集198
8.6.1案例分析198
8.6.2案例实现199
8.7本章小结204
8.8课后习题205
第9章工作流管理器(Azkaban)206
9.1工作流管理器概述206
9.1.1工作流调度系统背景206
9.1.2常用工作流管理器介绍206
9.2Azkaban概述207
9.2.1Azkaban特点208
9.2.2Azkaban组成结构208
9.2.3Azkaban部署模式209
9.3Azkaban部署210
9.3.1Azkaban资源准备210
9.3.2Azkaban安装配置212
9.3.3Azkaban启动测试220
9.4Azkaban使用224
9.4.1Azkaban工作流相关概念224
9.4.2案例演示——依赖任务调度管理226
9.4.3案例演示——MapReduce任务调度管理232
9.4.4案例演示——HIVE脚本任务调度管理235
9.5本章小结237
9.6课后习题237
第10章Sqoop数据迁移239
10.1Sqoop概述239
10.1.1Sqoop简介239
10.1.2Sqoop原理240
10.2Sqoop安装配置241
10.3Sqoop指令介绍242
10.4Sqoop数据导入244
10.4.1MySQL表数据导入HDFS245
10.4.2增量导入247
10.4.3MySQL表数据导入Hive248
10.4.4MySQL表数据子集导入249
10.5Sqoop数据导出251
10.6本章小结253
10.7课后习题253
第11章综合项目——网站流量日志数据分析系统255
11.1系统概述255
11.1.1系统背景介绍255
11.1.2系统架构设计255
11.1.3系统预览256
11.2模块开发——数据采集257
11.2.1使用Flume搭建日志采集系统257
11.2.2日志信息说明258
11.3模块开发——数据预处理258
11.3.1分析预处理的数据258
11.3.2实现数据的预处理259
11.4模块开发——数据仓库开发268
11.4.1设计数据仓库268
11.4.2实现数据仓库269
11.5模块开发——数据分析273
11.5.1流量分析273
11.5.2人均浏览量分析274
11.6模块开发——数据导出275
11.7模块开发——日志分析系统报表展示276
11.7.1搭建日志分析系统277
11.7.2实现报表展示功能285
11.7.3系统功能模块展示290
11.8本章小结290