本书以实战案例为主,全面阐述了大数据开发领域中常用的技术原理和框架,以及框架对应的实战案例。全书共分为四大篇章:大数据基础篇、大数据离线批处理技术篇、大数据在线实时处理技术篇、大数据处理实战案例篇。大数据基础篇主要介绍了大数据的基础知识、Hadoop和Storm的基础知识及其发展现状和应用前景;大数据离线批处理技术篇主要介绍了Hadoop、Hive和Sqoop的基本原理、环境搭建和项目案例;大数据在线实时处理技术篇主要介绍了Flume、Kafka、Storm的基本原理、环境搭建和项目案例;大数据处理实战案例篇详细介绍了基于海量日志数据的分析统计系统的实现过程,期间对各种大数据框架进行了整合,此案例项目稍加修改,便可应用于实际开发项目中。
本书内容由浅入深、从原理到实战,适合在校大学生、专业培训机构的学员、想转行从事大数据开发的人员、需要系统学习大数据技术的开发人员、大数据从业者、大数据运维工程师、希望提高大数据开发实战水平的人员、大数据开发经理、大数据架构师、需要时常查阅大数据常用框架技术和开发案例的人员阅读。
冰河(本名刘亚壮),大数据架构师,编程专家,拥有多年的项目架构和实战经验,多年来致力于分布式系统、微服务、分布式数据库、大数据技术的研究,在高并发、高可用、高可扩展性、高可维护性和大数据等领域拥有丰富的实战经验,对Hadoop、Spark、Storm等大数据框架源码进行过深度分析并具有丰富的实战经验。
第1篇 大数据基础篇
第1章 大数据处理概论 1
1.1 大数据的定义 2
1.2 大数据的结构类型 3
1.3 大数据处理平台的基础架构 4
1.4 大数据处理中的存储技术 6
1.4.1 提升大数据存储的容量 6
1.4.2 提升大数据存储的吞吐量 6
1.4.3 提升大数据存储的扩展 8
1.5 大数据处理中的计算技术 8
1.5.1 多处理技术 9
1.5.2 并行计算 9
1.5.3 高并发计算 9
1.5.4 离线批处理计算 9
1.5.5 在线实时计算 10
1.6 大数据处理中的容错性 10
1.6.1 数据存储的容错性 10
1.6.2 数据计算的容错性 12
1.7 大数据处理中的安全性 12
1.7.1 数据存储的安全性 13
1.7.2 数据计算的安全性 13
1.8 大数据行业应用案例 13
1.8.1 淘宝的千人千面系统 14
1.8.2 滴滴出行的车辆调度系统 14
1.9 本章总结 14
第2章 离线批处理技术——Hadoop 15
2.1 Google核心云计算技术 16
2.1.1 MapReduce编程模型 16
2.1.2 分布式文件系统 17
2.1.3 分布式结构化数据存储
BigTable 20
2.2 Hadoop云计算技术 21
2.2.1 Hadoop概述 22
2.2.2 Hadoop核心组件 22
2.2.3 Hadoop生态圈 24
2.2.4 Hadoop物理架构 26
2.2.5 Hadoop的原理和运行机制 27
2.2.6 Hadoop相关技术与概述 30
2.2.7 Hadoop的局限性 31
2.3 本章总结 32
第3章 在线实时处理技术——Storm 33
3.1 Storm的定义 34
3.2 Storm的诞生 34
3.2.1 诞生背景 34
3.2.2 Twitter使用Storm 34
3.3 Storm的发展 35
3.4 Storm的基本组件 35
3.4.1 Storm核心组件 35
3.4.2 Storm集群组成 36
3.4.3 Storm分组策略 37
3.5 Storm的可靠性 38
3.6 Storm的特性 40
3.7 其他流式处理框架 41
3.7.1 Apache S4 41
3.7.2 Spark Streaming 41
3.8 Storm的应用现状和发展趋势 42
3.8.1 Storm的应用现状 42
3.8.2 Storm的发展趋势 43
3.9 本章总结 43
第2篇 大数据离线批处理技术篇
第4章 Hadoop环境准备 44
4.1 Hadoop发行版本的选择 45
4.1.1 Apache Hadoop 45
4.1.2 CDH 45
4.1.3 Hadoop版本 45
4.1.4 如何选择Hadoop版本 47
4.2 Hadoop原理 47
4.2.1 HDFS原理 48
4.2.2 Hadoop MapReduce原理 51
4.2.3 Hadoop YARN原理 51
4.3 Hadoop架构 53
4.3.1 HDFS架构 53
4.3.2 Hadoop MapReduce架构 55
4.3.3 Hadoop YRAN架构 56
4.4 安装CentOS虚拟机 57
4.4.1 安装VMWare虚拟机 57
4.4.2 安装CentOS虚拟机 59
4.4.3 修改主机名 66
4.4.4 配置静态IP地址 67
4.4.5 配置主机名和IP地址的
映射关系 69
4.4.6 关闭防火墙 70
4.4.7 配置SSH免密码登录 70
4.5 本章总结 72
第5章 安装配置Hadoop 73
5.1 添加Hadoop用户身份 74
5.1.1 添加Hadoop用户组和用户 74
5.1.2 赋予Hadoop用户目录权限 74
5.1.3 赋予Hadoop用户sodu
权限 74
5.1.4 赋予Hadoop用户登录密码 75
5.1.5 配置Hadoop用户SSH
免密码登录 75
5.2 Hadoop的安装模式 75
5.2.1 本地模式 75
5.2.2 伪集群模式 76
5.2.3 集群模式 76
5.3 JDK的安装和配置 76
5.3.1 下载JDK 77
5.3.2 上传JDK到CentOS虚拟机 77
5.3.3 安装并配置JDK 78
5.4 Hadoop的本地模式安装和配置 80
5.4.1 下载Hadoop安装包 80
5.4.2 安装并配置Hadoop环境 81
5.4.3 以本地模式配置Hadoop 82
5.4.4 验证Hadoop本地模式是否
安装成功 82
5.5 Hadoop的伪集群模式安装和配置 84
5.5.1 以伪集群模式配置Hadoop 84
5.5.2 格式化NameNode 86
5.5.3 启动Hadoop 87
5.5.4 以浏览器方式验证环境搭建
是否成功 87
5.5.5 运行MapReduce程序验证
环境搭建是否成功 88
5.6 Hadoop集群模式的安装和配置
(完全生产环境) 90
5.6.1 服务器规划 90
5.6.2 Hadoop集群环境的准备 91
5.6.3 安装并配置集群环境下的
JDK 93
5.6.4 搭建并配置Zookeeper集群 94
5.6.5 搭建并配置Hadoop集群 96
5.6.6 启动Zookeeper集群 103
5.6.7 启动Hadoop集群(1) 104
5.6.8 启动Hadoop集群(2) 109
5.6.9 测试Hadoop HA的
高可用性 111
5.7 Hadoop集群模式的安装和配置
(精简版) 114
5.7.1 服务器规划 115
5.7.2 搭建并测试Hadoop
集群环境 115
5.8 搭建Hadoop环境遇到的问题及
解决方案 116
5.8.1 以root用户启动Hadoop
的问题 116
5.8.2 权限被拒绝 117
5.8.3 sudo命令异常 117
5.8.4 Hadoop 3.x端口变动 118
5.8.5 Hadoop 3.x未能找到或加载
MRAppMaster类 118
5.8.6 未能加载native-hadoop library
的警告 120
5.8.7 Hadoop 3.x运行自带的
wordcount报错 120
5.8.8 Hadoop命令变动 122
5.9 Hadoop集群动态增加和删除
节点 123
5.9.1 准备工作 123
5.9.2 动态添加DataNode和
NodeManager 124
5.9.3 动态删除DataNode与
NodeManager(1) 127
5.9.4 动态删除DataNode与
NodeManager(2) 129
5.10 Hadoop目录结构说明 130
5.11 本章总结 130