内容简介
第1章 Hadoop概述
1.1Hadoop的前世今生
1.1.1 Hadoop是什么
1.1.2项目起源
1.1.3发展历程
1.1.4名字起源
1.2 Hadoop生态系统简介
1.3 Hadoop的优势及应用领域
1.3.1 Hadoop的优势
1.3.2 Hadoop的应用领域
1.4 Hadoop与云计算
1.4.1云计算的概念及特点
1.4.2 Hadoop与云计算之间的关系
1.5 Hadoop与Spark
1.5.1 Spark的概念及特点
1.5.2 Hadoop与Spark之间的关系
1.6 Hadoop与传统关系型数据库
1.6.1传统关系型数据库的概念及特点
1.6.2 Hadoop与传统数据库之间的关系
本章 小结
本章 习题
第2章 Hadoop开发及运行环境搭建
2.1Hadoop集群环境搭建概述
2.1.1虚拟机的安装部署
2.1.2 Linux操作系统的安装部署
2.1.3 Hadoop的运行模式
2.2 Hadoop伪分布式集群环境搭建
2.2.1关闭防火墙和禁用SELINUX
2.2.2配置hostname与IP地址之间的对应关系
2.2.3创建用户和用户组
2.2.4配置SSH免密码登录
2.2.5 JDK安装
2.2.6 Hadoop伪分布式集群的安装配置
2.2.7测试运行Hadoop集群
2.3搭建MyEclipse开发环境
2.3.1 JDK的安装配置
2.3.2安装MyEclipse
2.3.3在MyEclipse上安装Hadoop插件
2.3.4 Hadoop环境配置
2.3.5构建MapReduce项目
本章 小结
本章 习题
第3章 HDFS分布式文件系统
3.1HDFS体系结构详解
3.1.1什么是文件系统
3.1.2什么是分布式文件系统
3.1.3 HDFS分布式文件系统概述
3.2 HDFS的Shell操作
3.2.1 HDFS基本Shell操作命令
3.2.2 Hadoop管理员常用的Shell操作命令
3.3 HDFS的Java API操作
3.3.1获取HDFS文件系统
3.3.2文件/目录的创建与删除
3.3.3获取文件
3.3.4上传/下载文件
3.3.5获取HDFS集群节点信息
3.4 HDFS的新特性——HA
3.4.1HA机制产生背景
3.4.2 HDFS的HA机制
3.4.3 HDFS的HA架构
3.5实战:小文件合并程序的编写及运行
本章 小结
本章 习题
第4章 MapReduce分布式计算框架
4.1初识MapReduce
4.1.1 MapReduce概述
4.1.2 MapReduce的基本设计思想
4.1.3 MapReduce的优缺点
4.2 MapReduce编程模型
4.2.1 MapReduce编程模型简介
4.2.2深入剖析MapReduce编程模型——以WordCount为例
4.3 MapReduce运行框架
4.3.1 MapReduce架构
4.3.2 MapReduce的运行机制
4.3.3 MapReduce内部逻辑
4.3.4 MapReduce数据本地性
4.3.5 MapReduce框架的容错性
4.3.6 MapReduce资源组织方式
4.3.7 MapReduce的高级特性及应用
4.4实战:统计相同字母组成的不同单词
本章 小结
本章 习题
第5章 Hadoop的文件I/O
5.1Hadoop文件I/O概述
5.2 Hadoop文件I/O的数据完整性
5.2.1 Hadoop文件I/O的数据完整性的概念
5.2.2 Hadoop的数据校验方式
5.3 Hadoop文件的序列化
5.3.1什么是序列化
5.3.2为什么要序列化
5.3.3为什么不用Java的序列化
5.3.4 Hadoop对序列化机制的要求
5.3.5 Hadoop中定义的序列化相关接口
5.4 Hadoop数据的解压缩
5.4.1解压缩简介
5.4.2 Hadoop常见压缩格式及特点
5.4.3常见压缩的使用方式
5.5基于文件的数据结构
5.6实战:Hadoop源码编译及Snappy压缩的配置使用
本章 小结
本章 习题
第6章 YARN资源管理器
6.1初识YARN
6.1.1 YARN是什么
6.1.2 YARN的作用
6.2 YARN基本架构
6.3 YARN的工作原理
6.3.1 YARN上运行的应用程序
6.3.2 YARN的工作流程
6.3.3 MapReduce On YARN的工作流程
6.4 YARN的容错性
6.5 YARN HA
本章 小结
本章 习题
第7章 Zookeeper分布式协调服务
7.1 Zookeeper概述
7.1.1 ZooKeeper是什么
7.1.2 Zookeeper的特点
7.1.3 Zookeeper的基本架构
7.1.4 Zookeeper的工作原理
7.2 Zookeeper安装配置
7.3 Zookeeper服务
7.3.1数据模型
7.3.2基本操作
7.3.3实现方式
7.4 Zookeeper的应用
7.4.1数据发布与订阅
7.4.2负载均衡
7.4.3命名服务
7.4.4分布式通知/协调
7.4.5配置管理
7.4.6集群管理
7.4.7分布式锁
7.4.8分布式队列
7.5实战:模拟实现集群配置信息的订阅与发布
本章 小结
本章 习题
第8章 Hadoop分布式集群搭建与管理
8.1准备物理集群
8.1.1物理集群搭建方式
8.1.2虚拟机的准备
8.2集群规划
8.2.1主机规划
8.2.2软件规划
8.2.3用户规划
8.2.4目录规划
8.3集群安装前的准备
8.3.1时钟同步
8.3.2 hosts文件检查
8.3.3禁用防火墙
8.3.4配置SSH免密码通信
8.3.5脚本工具的使用
8.4 Hadoop相关软件安装
8.4.1JDK的安装
8.4.2 Zookeeper的安装
8.5 Hadoop集群环境的搭建
8.5.1 Hadoop软件的安装
8.5.2 Hadoop配置及使用HDFS
8.5.3 Hadoop配置及使用YARN
8.6集群启停
8.6.1启动集群
8.6.2关闭集群
8.7主机的维护操作
8.7.1 Active NameNode维护操作
8.7.2 Standby NameNode维护操作
8.7.3 DataNode维护操作
8.7.4 Active ResourceManager维护操作
8.7.5 Standby ResourceManager维护操作
8.7.6 NodeManager维护操作
8.8集群节点动态增加与删除
8.8.1增加DataNode
8.8.2删除DataNode
8.8.3增删NodeManager
8.9集群运维技巧
8.9.1查看日志
8.9.2清理临时文件
本章 小结
本章 习题
第9章 Hive数据仓库
9.1初识Hive
9.1.1 Hive是什么
9.1.2 Hive产生的背景
9.1.3什么是数据仓库
9.1.4 Hive在Hadoop生态系统中的位置
9.1.5 Hive和Hadoop的关系
9.1.6 Hive和普通关系数据库的异同
9.2 Hive的原理及架构
9.2.1 Hive的设计原理
9.2.2 Hive的体系架构
9.2.3 Hive的运行机制
9.2.4 Hive编译器的运行机制
9.2.5 Hive的优缺点
9.2.6 Hive的数据类型
9.2.7 Hive的数据存储
9.3 Hive的安装部署
9.3.1安装MySQL
9.3.2安装Hive
9.4 Hive数据库的相关操作
9.5 Hive数据表的相关操作
9.5.1常见数据表类型
9.5.2操作内部表
9.5.3操作外部表
9.5.4操作分区表
9.5.5操作桶表
9.6 Hive的数据操作语言DML
9.6.1通过LOAD语句向表中装载数据
9.6.2通过INSERT语句向表中插入数据
9.6.3利用动态分区向表中插入数据
9.6.4通过CTAS加载数据
9.6.5导出数据
9.7 Hive的数据查询语言DQL
9.7.1 SELECT …FROM语句
9.7.2 WHERE语句
9.7.3数据的递归查询
9.7.4 GROUP BY语句和HAVING语句
9.7.5 ORDER BY语句和SORT BY语句
9.7.6 DISTRIBUTE BY语句
9.7.7 CLUSTER BY语句
9.8实战:通过Hive分析股票走势规律
本章 小结
本章 习题
第10章 HBase分布式数据库
10.1 HBase概述
10.1.1 HBase是什么
10.1.2 Hbase的特点
10.2 HBase数据模型
10.2.1 Hbase逻辑模型
10.2.2 HBase数据模型的核心概念
10.2.3 Hbase的物理模型
10.2.4 Hbase的基本架构
10.3 HBase的核心概念
10.3.1预写日志
10.3.2 Region定位
10.3.3写入流程
10.3.4查询流程
10.3.5容错性
10.4 HBase集群安装部署
10.4.1集群规划
10.4.2 HBase集群安装
10.5 HBase Shell工具
10.5.1命令分类
10.5.2基本操作
10.6 HBase Java客户端
10.6.1客户端配置
10.6.2创建表
10.6.3删除表
10.6.4插入数据
10.6.5查询数据
10.6.6删除数据
10.6.7过滤查询
10.7实战:MapReduce批量操作HBase
本章 小结
本章 习题
第11章 Hadoop生态系统常用开发技术
11.1 Sqoop数据导入导出工具
11.1.1 Sqoop概述
11.1.2 Sqoop的优势
11.1.3 Sqoop的架构与工作机制
11.1.4 Sqoop Import流程
11.1.5 Sqoop Export流程
11.1.6 Sqoop的安装配置
11.1.7 Sqoop实战
11.2 Flume日志采集系统
11.2.1 Flume概述
11.2.2 Flume NG的架构及工作机制
11.2.3 Flume NG的核心功能模块
11.2.4 Flume NG的数据可靠性
11.2.5 Flume NG的应用场景
11.2.6 Flume NG的安装配置
11.2.7 Flume NG实战
11.3 Kafka分布式消息系统
11.3.1 Kafka概述
11.3.2 Kafka的特点
11.3.3 Kafka的架构
11.3.4 Kafka的相关服务
11.3.5 Kafka的安装配置
11.3.6 Kafka Shell操作
11.3.7 Kafka客户端操作
11.4 ElasticSearch全文检索工具
11.4.1 ElasticSearch概述
11.4.2 ElasticSearch的特点
11.4.3 ElasticSearch的架构
11.4.4 ElasticSearch的相关服务
11.4.5 ElasticSearch的索引模块
11.4.6 ElasticSearch的安装配置
11.4.7 ElasticSearch RESTful API
11.4.8 ElasticSearch Java API
11.5 Storm流式计算框架
11.5.1 Storm概述
11.5.2 Storm的特点
11.5.3 Storm的架构
11.5.4 Storm工作流
11.5.5 Storm数据流
11.5.6 Storm集群的安装配置
11.5.7实战:统计网站PV和UV
11.6 Spark内存计算框架
11.6.1 Spark概述
11.6.2 Spark的特点
11.6.3弹性分布式数据集RDD
11.6.4 Spark架构原理
11.6.5算子功能及分类
11.6.6 Spark集群的安装配置
11.6.7实战:搜狗搜索数据统计
本章 小结
本章 习题
第12章 项目实践:广电收视率数据统计分析
12.1项目背景
12.2项目需求
12.3项目分析
12.3.1认识数据源
12.3.2项目各个收视指标的定义及计算方法
12.4项目开发流程
12.4.1 Flume数据收集
12.4.2 MapReduce数据清洗及分析
12.4.3 Hive数据统计分析
12.4.4 Sqoop数据导出
12.4.5项目数据可视化展示
本章 小结
第13章 项目实践:视频网站爬虫系统开发
13.1项目背景
13.2项目需求
13.3项目分析
13.4项目环境准备
13.5项目开发流程
13.5.1数据采集
13.5.2数据存储
13.5.3数据处理
13.5.4数据展示
本章 小结
参考文献