目录 第1章初识Hadoop1 1.1大数据概述1 1.1.1什么是大数据1 1.1.2大数据的数据类型2 1.1.3大数据的特征2 1.1.4研究大数据的意义3 1.2大数据的应用场景3 1.2.1医疗行业的应用3 1.2.2金融行业的应用4 1.2.3零售行业的应用4 1.3Hadoop概述5 1.3.1Hadoop的前世今生5 1.3.2Hadoop的优点6 1.3.3Hadoop的缺点6 1.3.4Hadoop的生态体系6 1.3.5Hadoop架构变迁8 1.4本章小结10 1.5课后习题10 第2章部署Hadoop11 2.1安装准备11 2.1.1创建虚拟机11 2.1.2克隆虚拟机21 2.1.3配置虚拟机23 2.1.4安装JDK31 2.2Hadoop集群部署模式33 2.3基于伪分布式模式部署 Hadoop34 2.4基于完全分布式模式部署 Hadoop40 2.5案例——词频统计47 2.6本章小结50 2.7课后习题51 第3章HDFS分布式文件系统52 3.1文件系统的分类52 3.2HDFS简介54 3.2.1HDFS架构54 3.2.2HDFS的特点56 3.3HDFS的文件读写流程57 3.4HDFS的健壮性59 3.5HDFS的Shell操作60 3.5.1HDFS Shell介绍60 3.5.2案例——通过Shell脚本定 时采集数据到HDFS …68 3.6HDFS的Java API操作72 3.6.1HDFS的Java API 介绍72 3.6.2案例——使用Java API 操作HDFS73 3.7Federation机制82 3.7.1Federation机制的实现 原理82 3.7.2Federation机制的 特点84 3.7.3Federation机制的 实现84 3.8Erasure Coding 88 3.9本章小结91 3.10课后习题92目录Hadoop大数据技术原理与应用(第2版)第4章MapReduce分布式计算框架…93 4.1MapReduce概述93 4.2MapReduce编程模型94 4.3MapReduce工作原理96 4.3.1MapReduce工作过程 … 96 4.3.2MapTask工作原理97 4.3.3ReduceTask工作 原理 98 4.3.4Shuffle工作原理99 4.4MapReduce编程组件100 4.4.1InputFormat组件100 4.4.2Mapper组件101 4.4.3Reducer组件103 4.4.4Partitioner组件104 4.4.5OutputFormat 组件106 4.5MapReduce驱动类107 4.6MapReduce性能优化策略 …110 4.7YARN资源管理框架112 4.7.1YARN基本架构112 4.7.2YARN工作流程113 4.8MapReduce经典案例——数据 去重114 4.8.1案例分析114 4.8.2案例实现116 4.9MapReduce经典案例—— TopN118 4.9.1案例分析118 4.9.2案例实现119 4.10MapReduce经典案例—— 倒排索引121 4.10.1倒排索引介绍121 4.10.2案例分析122 4.10.3案例实现124 4.11本章小结129 4.12课后习题130 第5章ZooKeeper分布式协调服务 … 131 5.1ZooKeeper简介131 5.1.1ZooKeeper特性132 5.1.2ZooKeeper集群架构 …132 5.2ZooKeeper数据模型133 5.3ZooKeeper典型应用场景134 5.4ZooKeeper的Watcher机制 …135 5.5ZooKeeper的选举机制136 5.6部署ZooKeeper集群138 5.6.1基于伪分布式模式部署 ZooKeeper集群139 5.6.2基于完全分布式模式部署 ZooKeeper集群142 5.7ZooKeeper的Shell操作146 5.8ZooKeeper的Java API操作 …153 5.8.1创建会话153 5.8.2操作ZooKeeper154 5.9本章小结160 5.10课后习题160 第6章Hadoop高可用集群161 6.1HDFS高可用集群161 6.2YARN高可用集群163 6.3部署Hadoop高可用集群164 6.4本章小结180 6.5课后习题180 第7章Hive数据仓库181 7.1数据仓库简介181 7.1.1什么是数据仓库181 7.1.2数据仓库系统结构182 7.1.3数据仓库分层183 7.1.4数据仓库模型184 7.2Hive简介185 7.2.1Hive与传统关系数据库 的区别185 7.2.2Hive系统架构186 7.2.3Hive工作原理187 7.2.4Hive数据存储模型 …188 7.3Hive的部署189 7.3.1内嵌模式189 7.3.2本地模式192 7.3.3远程模式197 7.4Hive数据类型200 7.5数据库操作202 7.5.1创建数据库202 7.5.2查看数据库信息203 7.5.3修改数据库属性204 7.5.4删除数据库204 7.6表操作205 7.6.1创建表205 7.6.2查看表208 7.6.3修改表209 7.6.4删除表211 7.6.5修改分区212 7.7数据操作215 7.7.1导入数据215 7.7.2向分区导入数据218 7.7.3查询数据221 7.7.4查询插入228 7.7.5关联查询230 7.8本章小结233 7.9课后习题233 第8章Flume日志采集系统235 8.1Flume概述235 8.2Flume日志采集系统结构236 8.3Flume的部署238 8.4Flume的基本使用239 8.5Flume的采集方案242 8.5.1Flume Sources243 8.5.2Flume Channels245 8.5.3Flume Sinks247 8.6Flume拦截器251 8.7Flume的可靠性保证253 8.7.1负载均衡253 8.7.2故障恢复259 8.8案例——将日志采集到 HDFS263 8.8.1案例分析264 8.8.2案例实现264 8.9本章小结271 8.10课后习题271 第9章Azkaban工作流管理器272 9.1工作流管理器概述272 9.2Azkaban概述273 9.3部署Azkaban274 9.3.1Azkaban部署模式274 9.3.2安装Azkaban274 9.3.3配置Azkaban276 9.3.4启动Azkaban279 9.4Azkaban的使用283 9.4.1Azkaban的常用 概念283 9.4.2案例演示——依赖任务 调度管理284 9.4.3案例演示——MapReduce 程序调度管理290 9.4.4案例演示——Hive脚本 任务调度管理295 9.5本章小结299 9.6课后习题299 第10章Sqoop数据迁移301 10.1Sqoop概述301 10.1.1Sqoop简介301 10.1.2Sqoop原理302 10.2Sqoop安装配置303 10.3Sqoop命令介绍305 10.4Sqoop数据的导入306 10.4.1数据准备307 10.4.2MySQL导入 HDFS 308 10.4.3增量导入310 10.4.4MySQL导入Hive …311 10.4.5MySQL过滤导入 HDFS312 10.5Sqoop数据的导出314 10.6本章小结315 10.7课后习题316 第11章综合项目——网站流量日志 数据分析系统31711.1系统概述317 11.1.1系统背景介绍317 11.1.2需求分析317 11.1.3系统架构318 11.2模块开发319 11.3本章小结319