本书从技术实战的角度,带领读者一步一步掌握大数据的相关技能。本书不仅提供相应命令、配置文件,还提供模拟环境演示等,并尽可能通过案例和实操降低大数据学习的门槛,力求让读者学以致用。
本书主要内容包括大数据技术概述、Linux基础与集群搭建、Hadoop集群配置、HDFS、MapReduce分布式编程、Hive大数据仓库、HBase数据库部署与操作、数据获取与Flume应用、基于Spark的内存计算,以及利用大数据平台处理图像及视频。
1.全书通过实践操作讲解大数据开发的基础知识,不仅提供相应命令、配置文件,还提供模拟环境演示等,尽可能通过案例和实操,降低大数据学习的门槛,力求让读者学以致用。
2.内容全:大数据技术概述、Linux基础与集群搭建、Hadoop集群配置、Hadoop分布式文件系统、MapReduce分布式编程、Hive大数据仓库、HBase数据库部署与操作、数据获取与采集、基于Spark的内存计算以及利用大数据平台处理图像及视频
薛志东,博士,研究员,现在华中科技大学软件学院工作,长期从事大数据相关教学与科研工作。先后讲授多门本科生、研究生课程,承担多项国家自然科学基金、湖北省自然科学基金、华为技术公司委托等重要项目。目前的研究主要涉及大数据处理相关领域等,如基于云计算的图像与视频等信息处理技术、医学与生物信息处理与分析、文本挖掘、深度学习、GPU开发等;同时对移动应用、康复游戏、无人机、机器人应用软件开发等有浓厚的兴趣。
第1章 大数据技术概述 1
1.1 大数据的概念与基本特性 1
1.2 大数据处理流程 2
1.3 Hadoop大数据技术 3
1.3.1 Hadoop简介 3
1.3.2 Hadoop的发行版本 5
1.4 实践环境准备 7
习题 15
第2章 Linux基础与集群搭建 16
2.1 Linux常用命令 16
2.1.1 用户和用户组 16
2.1.2 文件与目录 18
2.1.3 主机名 24
2.1.4 分区管理 25
2.2 网络配置 27
2.2.1 基本网络配置 27
2.2.2 集群网络配置 28
2.3 Linux集群配置 31
2.3.1 SSH免密码登录 31
2.3.2 Java环境安装 33
2.3.3 MySQL服务 34
2.3.4 配置时钟同步 35
2.4 快速配置Linux集群 37
2.4.1 导入虚拟机 37
2.4.2 快速配置 39
习题 42
第3章 Hadoop集群配置 43
3.1 Hadoop集群安装 43
3.1.1 基础环境准备 43
3.1.2 配置Java环境 49
3.1.3 安装Hadoop 51
3.1.4 启动Hadoop 58
3.2 Hadoop集群初始化和日志查看 62
3.2.1 初始化文件系统 62
3.2.2 集群的启动与停止 62
3.2.3 查看日志 63
习题 64
第4章 HDFS 65
4.1 HDFS简介 65
4.1.1 HDFS的基本概念 65
4.1.2 HDFS文件的读取 66
4.1.3 HDFS文件的写入 67
4.1.4 HDFS 数据备份 68
4.2 HDFS基本命令 69
4.3 HDFS数据平衡优化 72
4.3.1 编程原则 73
4.3.2 平衡逻辑 73
4.3.3 数据平衡案例 74
4.4 HDFS API的使用方法 75
习题 81
第5章 MapReduce分布式编程
82
5.1 MapReduce简介 82
5.2 词频统计编程实例 83
5.3 MapReduce Shuffle过程开发 89
5.3.1 MapReduce数据类型 90
5.3.2 Partitioner负载平衡编程 90
5.3.3 Sort排序编程 92
5.3.4 Combiner减少中间数据编程 93
5.4 MapReduce的性能优化 94
5.4.1 Hadoop配置参数调优 94
5.4.2 使用合适的数据类型 95
5.4.3 基准性能测试工具 96
5.5 YARN数据处理框架 99
5.5.1 YARN常用命令 100
5.5.2 使用Web GUI监控实例 102
5.6 MapReduce实战:绘制频度分布 104
5.6.1 实战概述 104
5.6.2 实战步骤 104
5.6.3 源码分析 109
习题 114
第6章 Hive大数据仓库 115
6.1 Hive简介 115
6.2 Hive安装及配置 116
6.3 从创建数据库到创建表 118
6.3.1 数据类型 118
6.3.2 创建数据库 119
6.3.3 创建表 119
6.3.4 删除表 121
6.3.5 修改表 121
6.4 数据查询及自定义函数运算 123
6.4.1 HiveQL操作 123
6.4.2 JOIN语句 124
6.4.3 内置操作符和函数 125
6.5 Hive自定义函数编程 128
6.5.1 数据准备 128
6.5.2 编程实现 129
6.5.3 使用自定义函数 130
6.6 Hive实战 132
6.6.1 数据准备 133
6.6.2 实战步骤 133
习题 136
第7章 HBase数据库部署与操作
138
7.1 HBase简介 138
7.1.1 HBase表 138
7.1.2 HBase基本知识 138
7.2 HBase的安装 139
7.2.1 必要条件 139
7.2.2 安装配置HBase 140
7.2.3 启动HBase 142
7.3 HBase Shell操作 143
7.3.1 普通命令 145
7.3.2 DDL操作 146
7.3.3 DML操作 148
7.3.4 工具命令 150
7.3.5 复制命令 151
7.4 HBase客户端API 151
7.4.1 CRUD操作 151
7.4.2 批量处理 155
7.4.3 行锁 156
7.4.4 扫描 157
7.4.5 数据过滤 158
7.5 HBase客户端选择及配置优化 159
7.6 HBase与MapReduce集成 159
7.7 HBase集群监控 160
7.8 HBase实战:公有云网盘系统管理 164
7.8.1 部署公有云网盘 165
7.8.2 网盘核心代码分析 168
习题 171
第8章 数据获取与Flume应用 172
8.1 公开数据资源获取 172
8.2 使用网络爬虫获取数据 173
8.2.1 爬虫的工作原理 173
8.2.2 爬虫的搜索策略 174
8.2.3 爬虫的简单应用 175
8.3 使用Flume获取数据 177
8.3.1 Flume简介 177
8.3.2 Flume运行机制 177
8.3.3 Flume安装部署 179
8.3.4 Flume简单应用 180
8.4 综合案例 182
习题 186
第9章 基于Spark的内存计算 187
9.1 Spark简介 187
9.2 Spark快速部署 188
9.2.1 Spark单机模式部署 188
9.2.2 Spark分布式集群部署 189
9.3 Spark程序 192
9.3.1 Spark Shell 192
9.3.2 在IDEA中编写词频统计 193
9.4 Spark RDD编程 197
9.4.1 RDD简介 197
9.4.2 RDD的操作算子 198
9.4.3 RDD的持久化 204
9.5 Spark生态系统 205
9.5.1 Spark Core 206
9.5.2 Spark SQL 206
9.5.3 Spark Streaming 206
9.5.4 MLlib 206
9.5.5 GraphX 207
9.6 Spark应用案例 207
9.6.1 案例概述 207
9.6.2 代码实现 208
9.6.3 运行结果 208
习题 209
第10章 利用大数据平台处理图像
210
10.1 图像的基本概念 210
10.2 Hadoop处理图像的问题与对策 211
10.2.1 Hadoop直接处理图像存在
的问题 211
10.2.2 解决途径 212
10.3 HIPI安装与部署 212
10.4 使用HIPI进行图像处理 214
10.5 HIPI工具hibDownload 222
10.5.1 编译hibDownload 222
10.5.2 hibDownload的使用方法 222
10.5.3 hibDownload的工作原理 222
10.5.4 hibDownload的使用示例 230
习题 235
参考文献 236