本书围绕Hadoop生态圈相关系统介绍大数据处理架构Hadoop。全书共11章节,其中,第1-2章主要带领大家认识Hadoop以及学会搭建Hadoop集群。第3-5章讲解了分布式文件系统HDFS、分布式计算框架MapReduce以及分布式协调服务。第6章讲解的是Hadoop2新特性,包含YARN和高可用特性。第7-10章主要讲解Hadoop生态圈的相关辅助系统,包括Hive、Flume、Azkaban和Sqoop。第11章是一个综合项目——网站流量日志数据分析系统,其目的是教会大家如何利用Hadoop生态圈技术构建大数据系统架构并进行开发,同时加深Hadoop技术的理解。
本书可作为高等院校本、专科计算机相关专业、信息管理等相关专业的大数据课程教材,也可供相关技术人员参考,是一本适合广大计算机编程爱好者的优秀读物。
1、理论+实践相结合,全方位讲解Hadoop
2、大量图解知识,讲解通俗易懂
3、真实大型综合项目,实战性强
第1章 初识Hadoop 1.1 大数据概述 1.1.1 什么是大数据 1.1.2 大数据的特征 1.1.3 研究大数据的意义 1.2 大数据的应用场景 1.2.1 医疗行业的应用 1.2.2 金融行业的应用 1.2.3 零售行业的应用 1.3 Hadoop概述 1.3.1 Hadoop的前世今生 1.3.2 Hadoop的优势 1.3.3 Hadoop的生态体系 1.3.4 Hadoop的版本 1.4 本章小结 1.5 课后习题 第2章 搭建Hadoop集群 2.1 安装准备 2.1.1 虚拟机安装 2.1.2 虚拟机克隆 2.1.3 Linux系统网络配置 2.1.4 SSH服务配置 2.2 Hadoop集群搭建 2.2.1 Hadoop集群部署模式 2.2.2 JDK安装 2.2.3 Hadoop安装 2.2.4 Hadoop集群配置 2.3 Hadoop集群测试 2.3.1 格式化文件系统 2.3.2 启动和关闭Hadoop集群 2.3.3 通过UI查看Hadoop运行状态 2.4 Hadoop集群初体验 2.5 本章小结 2.6 课后习题 第3章 HDFS分布式文件系统 3.1 HDFS的简介 3.1.1 HDFS的演变 3.1.2 HDFS的基本概念 3.1.3 HDFS的特点 3.2 HDFS的架构和原理 3.2.1 HDFS存储架构 3.2.2 HDFS文件读写原理 3.3 HDFS的Shell操作 3.3.1 HDFS Shell介绍 3.3.2 案例——Shell定时采集数据到HDFS 3.4 HDFS的Java API操作 3.4.1 HDFS Java API介绍 3.4.2 案例——使用Java API操作HDFS 3.5 本章小结 3.6 课后习题 第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 MapTask工作原理 4.2.3 ReduceTask工作原理 4.2.4 Shuffle工作原理 4.3 MapReduce编程组件 4.3.1 InputFormat组件 4.3.2 Mapper组件 4.3.3 Reducer组件 4.3.4 Partitioner组件 4.3.5 Combiner组件 4.3.6 OutputFormat组件 4.4 MapReduce运行模式 4.5 MapReduce性能优化策略 4.6 MapReduce经典案例——倒排索引 4.6.1 案例分析 4.6.2 案例实现 4.7 MapReduce经典案例——数据去重 4.7.1 案例分析 4.7.2 案例实现 4.8 MapReduce经典案例——TopN 4.8.1 案例分析 4.8.2 案例实现 4.9 本章小结 4.10 课后习题 第5章 Zookeeper分布式协调服务 5.1 初识Zookeeper 5.1.1 Zookeeper简介 5.1.2 Zookeeper的特性 5.1.3 Zookeeper集群角色 5.2 数据模型 5.2.1 数据存储结构 5.2.2 Znode的类型 5.2.3 Znode的属性 5.3 Zookeeper的Watch机制 5.3.1 Watch机制的简介 5.3.2 Watch机制的特点 5.3.3 Watch机制的通知状态和事件类型 5.4 Zookeeper的选举机制 5.4.1 选举机制的简介 5.4.2 选举机制的类型 5.5 Zookeeper分布式集群部署 5.5.1 Zookeeper安装包的下载安装 5.5.2 Zookeeper相关配置 5.5.3 Zookeeper服务的启动和关闭 5.6 Zookeeper的Shell操作 5.6.1 Zookeeper Shell介绍 5.6.2 通过Shell命令操作Zookeeper 5.7 Zookeeper的Java API操作 5.7.1 Zookeeper Java API介绍 5.7.2 通过Java API操作Zookeeper 5.8 Zookeeper典型应用场景 5.8.1 数据发布与订阅 5.8.2 统一命名服务 5.8.3 分布式锁 5.9 本章小结 5.10 课后习题 第6章 Hadoop2.0新特性 6.1 Hadoop2.0改进与提升 6.2 YARN资源管理框架 6.2.1 YARN体系结构 6.2.2 YARN工作流程 6.3 HDFS的高可用 6.3.1 HDFS的高可用架构 6.3.2 搭建Hadoop高可用集群 6.4 本章小结 6.5 课后习题 第7章 Hive数据仓库 7.1 数据仓库简介 7.1.1 什么是数据仓库 7.1.2 数据仓库的结构 7.1.3 数据仓库的数据模型 7.2 Hive简介 7.2.1 什么是Hive 7.2.2 Hive系统架构 7.2.3 Hive工作原理 7.2.4 Hive数据模型 7.3 Hive的安装 7.3.1 Hive安装模式介绍 7.3.2 嵌入模式 7.3.3 本地模式和远程模式 7.4 Hive的管理 7.4.1 CLI方式 7.4.2 远程服务 7.5 Hive内置数据类型 7.6 Hive数据模型操作 7.6.1 Hive数据库操作 7.6.2 Hive内部表操作 7.6.3 Hive外部表操作 7.6.4 Hive分区表操作 7.6.5 Hive桶表操作 7.7 Hive数据操作 7.8 本章小结 7.9 课后习题 第8章 Flume日志采集系统 8.1 Flume概述 8.1.1 Flume简介 8.1.2 Flume运行机制 8.1.3 Flume日志采集系统结构图 8.2 Flume基本使用 8.2.1 Flume系统要求 8.2.2 Flume安装配置 8.2.3 Flume入门使用 8.3 Flume采集方案配置说明 8.3.1 Flume Sources 8.3.2 Flume Channels 8.3.3 Flume Sinks 8.4 Flume的可靠性保证 8.4.1 负载均衡 8.4.2 故障转移 8.5 Flume拦截器 8.6 案例——日志采集 8.6.1 案例分析 8.6.2 案例实现 8.7 本章小结 8.8 课后习题 第9章 工作流管理器(Azkaban) 9.1 工作流管理器概述 9.1.1 工作流调度系统背景 9.1.2 常用工作流管理器介绍 9.2 Azkaban概述 9.2.1 Azkaban特点 9.2.2 Azkaban组成结构 9.2.3 Azkaban部署模式 9.3 Azkaban部署 9.3.1 Azkaban资源准备 9.3.2 Azkaban安装配置 9.3.3 Azkaban启动测试 9.4 Azkaban使用 9.4.1 Azkaban工作流相关概念 9.4.2 案例演示——依赖任务调度管理 9.4.3 案例演示——MapReduce任务调度管理 9.4.4 案例演示——HIVE脚本任务调度管理 9.5 本章小结 9.6 课后习题 第10章 Sqoop数据迁移 10.1 Sqoop概述 10.1.1 Sqoop简介 10.1.2 Sqoop原理 10.2 Sqoop安装配置 10.3 Sqoop指令介绍 10.4 Sqoop数据导入 10.4.1 MySQL表数据导入HDFS 10.4.2 增量导入 10.4.3 MySQL表数据导入Hive 10.4.4 MySQL表数据子集导入 10.5 Sqoop数据导出 10.6 本章小结 10.7 课后习题 第11章 综合项目——网站流量日志数据分析系统 11.1 系统概述 11.1.1 系统背景介绍 11.1.2 系统架构设计 11.1.3 系统预览 11.2 模块开发——数据采集 11.2.1 使用Flume搭建日志采集系统 11.2.2 日志信息说明 11.3 模块开发——数据预处理 11.3.1 分析预处理的数据 11.3.2 实现数据的预处理 11.4 模块开发——数据仓库开发 11.4.1 设计数据仓库 11.4.2 实现数据仓库 11.5 模块开发——数据分析 11.5.1 流量分析 11.5.2 人均浏览量分析 11.6 模块开发——数据导出 11.7 模块开发——日志分析系统报表展示 11.7.1 搭建日志分析系统 11.7.2 实现报表展示功能 11.7.3 系统功能模块展示 11.8 本章小结