本书面向Hadoop大数据技术,通过大量实例,循序渐进地介绍了Hadoop生态系统常用组件的安装及使用方法。
全书共15个项目,主要内容包括:在虚拟机中安装CentOS 7、安装Hadoop伪分布、配置平台基础环境、搭建Zookeeper分布式集群、搭建HDFS分布式集群、搭建YARN分布式集群、Hadoop分布式计算框架(MapReduce)、Hive的安装与部署、Hive常用命令的使用、搭建HBase分布式集群、Sqoop的安装与部署、Flume的安装与使用、搭建Kafka分布式集群、Davinci的安装与部署以及互联网金融项目的离线分析。本书内容由浅入深,涵盖了Hadoop大数据生态系统的各个主要知识点。
本书内容翔实,通俗易懂,可作为大数据初学者的学习教材,也可作为大数据应用开发人员的参考书。
随着移动互联网的快速发展,大数据时代已经到来,大数据技术也已融入人们生活的各个方面。2023年3月7日,根据国务院关于提请审议国务院机构改革方案的议案,组建了国家数据局。从这一举措可以看出国家对大数据技术的重视程度,也可以看出大数据技术的应用前景十分广阔,这使学习和掌握大数据技术成为迫切的现实需求。
Hadoop是大数据技术中非常重要的一个组成部分。本书系统地介绍了Hadoop大数据开发技术的基础知识与应用、Hadoop核心组件以及Hadoop生态系统的常用组件,最后通过完整的案例整合了相关技术组件。
本书由几位高校教师合作编写。我们在本书中融入了大数据应用的实践经验,注重理论与实践相结合,避免了纯理论地、孤立地学习技术组件,从而使读者在学习了大数据相关技术后,能够真正地将其应用到实际工作中。
本书共15个项目,其主要内容如下:
项目一为在虚拟机中安装CentOS 7,主要介绍了Linux的相关概念以及在虚拟机中安装部署CentOS 7。
项目二为安装Hadoop伪分布,主要介绍了大数据技术的常用概念以及Hadoop伪分布的安装。
项目三为配置平台基础环境,主要介绍了部署集群前的各项准备工作。
项目四为搭建Zookeeper分布式集群,主要介绍了Zookeeper的相关概念以及Zookeeper集群的安装与配置。
项目五为搭建HDFS分布式集群,主要介绍了HDFS的构架与工作原理以及HDFS集群的搭建。
项目六为搭建YARN分布式集群,主要介绍了YARN的构架设计与工作原理以及YARN集群的安装与配置,最后还介绍了集群运维的常用命令。
项目七为?Hadoop分布式计算框架(MapReduce),主要介绍了MapReduce的设计思想和优缺点,还重点介绍了MapReduce的编程模型和运行机制。
项目八为Hive的安装与部署,主要介绍了Hive的原理与构架以及Hive的安装和部署。
项目九为?Hive常用命令的使用,主要介绍了Hive中常用命令的使用。
项目十为搭建HBase分布式集群,主要介绍了HBase的模型及构架、分布式集群的安装和部署、Shell的操作以及Java客户端。
项目十一为?Sqoop的安装与部署,主要介绍了Sqoop的概念、安装、部署和使用。
项目十二为?Flume的安装与使用,主要介绍了Flume组件的安装、部署以及基本用法。
项目十三为搭建?Kafka分布式集群,主要介绍了Kafka集群的安装、部署以及使用方法。
项目十四为?Davinci的安装与部署,主要介绍了Davinci组件的相关构架以及安装与部署。
项目十五为互联网金融项目的离线分析,主要介绍了项目需求、流程设计和创建相应的数据库与表格等,然后按照大数据离线项目的流程详细介绍了互联网金融项目的完整开发过程。
本书由何永亚、苏秀芝、王康任主编,胡涛、陆伟霞任副主编。其中,何永亚负责拟定、编写大纲和统稿工作,并编写了项目一至项目十三,苏秀芝、王康编写了项目十四和项目十五,胡涛、陆伟霞参与了本书资料的搜集整理及内容勘误等工作,马庆参与了本书的审定工作。
读者可以通过超星平台加入相应的在线课程进行学习并下载课程资源,课程网址为https://mooc1-1.chaoxing.com/course-ans/courseportal/234740187.html。
由于编者水平有限,书中难免有不妥之处,恳请广大读者批评指正。编者的电子邮箱为1073926709@qq.com。
编 者
2023年5月
项目一 在虚拟机中安装CentOS 7 1
1.1 Linux概述 1
1.1.1 Linux操作系统简介 1
1.1.2 Linux操作系统的应用场景 1
1.1.3 Linux版本 2
1.2 Linux的常用命令 2
1.2.1 ls命令 2
1.2.2 cd命令 3
1.2.3 pwd命令 3
1.2.4 mkdir 命令 3
1.2.5 rm命令 4
1.2.6 rmdir命令 4
1.2.7 mv命令 4
1.2.8 cp命令 5
1.2.9 cat命令 5
1.2.10 head命令 5
1.2.11 chmod命令 5
1.2.12 chown命令 6
1.2.13 ln命令 7
1.2.14 date命令 8
1.2.15 kill命令 9
1.3 VMware Workstation的安装与部署 9
1.4 创建虚拟机 14
1.5 安装CentOS 7系统 21
项目二 安装Hadoop伪分布 29
2.1 大数据概述 29
2.1.1 什么是大数据 29
2.1.2 Hadoop是什么 29
2.1.3 Hadoop项目起源 30
2.1.4 Hadoop的发展历程 30
2.1.5 Hadoop名字起源 30
2.1.6 Hadoop的优势 30
2.1.7 Hadoop的应用领域 31
2.1.8 Hadoop与云计算 31
2.1.9 Hadoop与Spark 32
2.1.10 Hadoop与关系型数据库
管理系统 34
2.2 配置静态IP地址 35
2.3 Xshell连接工具 37
2.4 FileZilla传输工具 41
2.5 配置主机名和IP地址的映射 42
2.6 关闭Linux防火墙 42
2.7 创建Linux的用户和用户组 43
2.8 Linux SSH免密登录 44
2.9 JDK的安装与配置 45
2.10 Hadoop的安装与配置 46
项目三 配置平台基础环境 52
3.1 Linux虚拟机的克隆 52
3.2 配置静态IP地址 54
3.3 Xshell连接克隆虚拟机 56
3.4 修改克隆虚拟机主机名 57
3.5 关闭克隆虚拟机防火墙 57
3.6 FileZilla连接克隆虚拟机 58
3.7 Hadoop集群安装前的准备工作 58
项目四 搭建Zookeeper分布式集群 66
4.1 Zookeeper概述 66
4.1.1 Zookeeper的特点 66
4.1.2 Zookeeper的基本架构与
工作原理 67
4.1.3 Zookeeper的数据模型 67
4.1.4 Znode的特性 68
4.1.5 监听机制 68
4.2 Zookeeper集群的安装与配置 68
4.3 Zookeeper Shell的常用操作 72
项目五 搭建HDFS分布式集群 73
5.1 HDFS的架构设计与工作原理 73
5.1.1 HDFS是什么 73
5.1.2 HDFS的产生背景 73
5.1.3 HDFS的设计理念 74
5.1.4 HDFS的核心设计目标 74
5.1.5 HDFS的系统架构 74
5.1.6 HDFS的优缺点 76
5.1.7 HDFS读数据流程 76
5.1.8 HDFS写数据流程 77
5.1.9 HDFS的高可用机制及架构 78
5.2 HDFS集群的安装与配置 79
5.3 HDFS集群服务的启动 82
5.4 测试HDFS集群 83
5.5 HDFS Shell的操作命令 85
5.5.1 HDFS Shell的基本操作命令 85
5.5.2 HDFS Shell的管理员操作命令 85
项目六 搭建YARN分布式集群 87
6.1 YARN的架构设计与工作原理 87
6.1.1 YARN是什么 87
6.1.2 YARN的作用 87
6.1.3 YARN的基本构架 88
6.1.4 YARN的工作原理 89
6.1.5 YARN的工作流程 89
6.1.6 YARN的高可用机制 90
6.1.7 YARN的调度器 91
6.2 YARN集群的配置 91
6.3 YARN集群服务的启动 94
6.4 YARN集群的测试 95
6.5 Hadoop集群的运维管理 96
6.5.1 Hadoop集群进程的管理 97
6.5.2 Hadoop集群的运维技巧 99
项目七 Hadoop分布式计算框架
(MapReduce) 103
7.1 初识MapReduce 103
7.1.1 MapReduce概述 103
7.1.2 MapReduce的基本设计思想 104
7.1.3 MapReduce的优缺点 105
7.2 MapReduce编程模型 106
7.2.1 MapReduce的执行步骤 106
7.2.2 深入剖析MapReduce
编程模型 107
项目八 Hive的安装与部署 111
8.1 Hive概述 111
8.1.1 Hive的定义 111
8.1.2 Hive的产生背景 111
8.1.3 Hive的优缺点 111
8.1.4 Hive在Hadoop生态系统中的
位置 112
8.1.5 Hive和Hadoop的关系 112
8.2 Hive的原理及架构 113
8.2.1 Hive的设计原理 113
8.2.2 Hive的体系结构 113
8.2.3 Hive的运行机制 114
8.2.4 Hive的转换过程 115
8.2.5 Hive的数据类型 115
8.2.6 Hive的数据存储 116
8.3 MySQL的安装与部署 117
8.4 安装与部署Hive客户端 118
项目九 Hive常用命令的使用 121
9.1 Hive对数据库的操作 121
9.1.1 创建数据库 121
9.1.2 使用数据库 122
9.1.3 修改数据库 123
9.1.4 删除数据库 123
9.2 Hive对数据表的操作 124
9.2.1 创建表 124
9.2.2 查看表 126
9.2.3 修改表 127
9.2.4 删除表 127
9.3 Hive数据的相关操作 128
9.3.1 数据导入 128
9.3.2 数据导出 130
9.3.3 数据备份与恢复 132
9.4 Hive查询的相关操作 133
9.4.1 查询显示所有字段 133
9.4.2 查询显示部分字段 133
9.4.3 where条件查询 133
9.4.4 distinct去重查询 134
9.4.5 group by分组查询 134
9.4.6 order by全局排序 134
9.4.7 sort by局部排序 135
9.4.8 distribute by分区查询 135
9.4.9 cluster by分区排序 136
9.5 Hive表连接的相关操作 137
9.5.1 等值连接 137
9.5.2 内连接 137
9.5.3 左连接 137
9.5.4 右连接 138
9.5.5 全连接 138
9.6 Hive内部表和外部表的相关操作 139
9.6.1 内部表 139
9.6.2 外部表 140
9.7 Hive分区与分桶的相关操作 140
9.7.1 创建表分区 140
9.7.2 创建分桶 142
项目十 搭建HBase分布式集群 144
10.1 HBase 概述 144
10.1.1 HBase是什么 144
10.1.2 HBase的特点 144
10.2 HBase的模型及架构 145
10.2.1 HBase的逻辑模型 145
10.2.2 HBase的数据模型 145
10.2.3 HBase的物理模型 146
10.2.4 HBase的基本构架 147
10.3 HBase集群的安装与配置 149
10.4 启动HBase集群服务 151
10.5 HBase Shell工具 152
10.6 HBase Java客户端 154
10.6.1 添加HBase的相关依赖 154
10.6.2 连接HBase数据库 154
10.6.3 创建HBase表 155
10.6.4 向HBase表中插入数据 155
10.6.5 查询HBase表数据 156
10.6.6 HBase过滤查询 157
10.6.7 删除HBase表 158
项目十一 Sqoop的安装与部署 160
11.1 Sqoop数据迁移工具 160
11.1.1 Sqoop概述 160
11.1.2 Sqoop的优势 161
11.1.3 Sqoop的架构及工作机制 161
11.1.4 Sqoop Import流程 161
11.1.5 Sqoop Export流程 162
11.2 Sqoop的安装与配置 163
11.3 案例:Sqoop迁移Hive仓库数据 164
项目十二 Flume的安装与使用 166
12.1 Flume日志采集系统 166
12.1.1 Flume概述 166
12.1.2 Flume NG架构设计 167
12.2 Flume的安装与配置 168
12.3 测试实例:监控端口数据 170
12.3.1 案例需求 170
12.3.2 实现步骤 170
项目十三 搭建Kafka分布式集群 173
13.1 Kafka 概述 173
13.1.1 Kafka的定义 173
13.1.2 Kafka的设计目标 173
13.1.3 Kafka的特点 174
13.2 Kafka的构架设计 174
13.2.1 主题和分区 175
13.2.2 消费者和消费者组 175
13.2.3 副本 176
13.3 Kafka分布式集群的安装与配置 176
项目十四 Davinci的安装与部署 180
14.1 Davinci的架构设计 180
14.1.1 Davinci的定义 180
14.1.2 Davinci的架构设计 180
14.1.3 Davinci的应用场景 181
14.2 Davinci的安装与部署 181
14.2.1 部署规划 181
14.2.2 准备前置环境 182
14.2.3 下载安装包 182
14.2.4 安装与初始化目录 182
14.2.5 配置环境变量 183
14.2.6 初始化数据库 183
14.2.7 Davinci服务器的启停与注册 185
项目十五 互联网金融项目的离线分析 187
15.1 需求分析及流程设计 187
15.2 创建文件夹与数据库 188
15.3 创建相应表格 189
15.4 Sqoop采集MySQL中的数据 191
15.4.1 启动集群相关服务 191
15.4.2 创建Hive数据库 191
15.4.3 MySQL数据迁移至Hive 191
15.5 对金融项目进行离线分析 193
15.5.1 信用卡用户特征分析 193
15.5.2 信用卡用户消费行为分析 195
15.5.3 信用卡用户管理行为分析 196
15.6 创建MySQL业务表 197
15.7 统计结果导入MySQL 200
15.8 Davinci数据可视化分析 203
15.8.1 启动Davinci并创建项目 203
15.8.2 创建不同的视图 204
15.8.3 创建不同的图表 215
15.8.4 创建大屏 220
参考文献 223