本书以实战案例为主,全面阐述了大数据开发领域中常用的技术原理和框架,以及框架对应的实战案例。全书共分为四大篇章:大数据基础篇、大数据离线批处理技术篇、大数据在线实时处理技术篇、大数据处理实战案例篇。大数据基础篇主要介绍了大数据的基础知识、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