Hadoop大数据挖掘从入门到进阶实战
内容介绍
本书采用“理论 实战”的形式编写,全面介绍了Hadoop大数据挖掘的相关知识。本书共分为13章,涵盖的主要内容有:集群及开发环境搭建;快速构建一个Hadoop项目并线上运行;Hadoop套件实战;Hive编程——使用SQL提交MapReduce任务到Hadoop集群;游戏玩家的用户行为分析——特征提取;Hadoop平台管理与维护;Hadoop异常处理解决方案;初识Hadoop核心源码;Hadoop通信机制和内部协议;Hadoop分布式文件系统剖析;ELK实战案例——游戏应用实时日志分析平台;Kafka实战案例——实时处理游戏用户数据;Hadoop拓展——Kafka剖析。本书不但适合刚入门的初学者系统学习Hadoop的各种基础语法和开发技巧,而且也适合有多年开发经验的开发者进阶提高。另外,本书也适合社会培训机构和相关院校作为教材或者教学参考书。
目录
- 前言
- 第1章 集群及开发环境搭建1
- 1.1 环境准备1
- 1.1.1 基础软件下载1
- 1.1.2 准备Linux操作系统2
- 1.2 安装Hadoop4
- 1.2.1 基础环境配置4
- 1.2.2 Zookeeper部署7
- 1.2.3 Hadoop部署9
- 1.2.4 效果验证21
- 1.2.5 集群架构详解24
- 1.3 Hadoop版Hello World25
- 1.3.1 Hadoop Shell介绍25
- 1.3.2 WordCount初体验27
- 1.4 开发环境28
- 1.4.1 搭建本地开发环境28
- 1.4.2 运行及调试预览31
- 1.5 小结34
- 第2章 实战:快速构建一个Hadoop项目并线上运行35
- 2.1 构建一个简单的项目工程35
- 2.1.1 构建Java Project结构工程35
- 2.1.2 构建Maven结构工程36
- 2.2 操作分布式文件系统(HDFS)39
- 2.2.1 基本的应用接口操作39
- 2.2.2 在高可用平台上的使用方法42
- 2.3 利用IDE提交MapReduce作业43
- 2.3.1 在单点上的操作43
- 2.3.2 在高可用平台上的操作46
- 2.4 编译应用程序并打包51
- 2.4.1 编译Java Project工程并打包51
- 2.4.2 编译Maven工程并打包55
- 2.5 部署与调度58
- 2.5.1 部署应用58
- 2.5.2 调度任务59
- 2.6 小结60
- 第3章 Hadoop套件实战61
- 3.1 Sqoop——数据传输工具61
- 3.1.1 背景概述61
- 3.1.2 安装及基本使用62
- 3.1.3 实战:在关系型数据库与分布式文件系统之间传输数据64
- 3.2 Flume——日志收集工具66
- 3.2.1 背景概述67
- 3.2.2 安装与基本使用67
- 3.2.3 实战:收集系统日志并上传到分布式文件系统(HDFS)上72
- 3.3 HBase——分布式数据库74
- 3.3.1 背景概述74
- 3.3.2 存储架构介绍75
- 3.3.3 安装与基本使用75
- 3.3.4 实战:对HBase业务表进行增、删、改、查操作79
- 3.4 Zeppelin——数据集分析工具85
- 3.4.1 背景概述85
- 3.4.2 安装与基本使用85
- 3.4.3 实战:使用解释器操作不同的数据处理引擎88
- 3.5 Drill——低延时SQL查询引擎92
- 3.5.1 背景概述93
- 3.5.2 安装与基本使用93
- 3.5.3 实战:对分布式文件系统(HDFS)使用SQL进行查询95
- 3.5.4 实战:使用SQL查询HBase数据库99
- 3.5.5 实战:对数据仓库(Hive)使用类实时统计、查询操作101
- 3.6 Spark——实时流数据计算104
- 3.6.1 背景概述104
- 3.6.2 安装部署及使用105
- 3.6.3 实战:对接Kafka消息数据,消费、计算及落地108
- 3.7 小结114
- 第4章 Hive编程——使用SQL提交MapReduce任务到Hadoop集群115
- 4.1 环境准备与Hive初识115
- 4.1.1 背景介绍115
- 4.1.2 基础环境准备116
- 4.1.3 Hive结构初识116
- 4.1.4 Hive与关系型数据库(RDBMS)118
- 4.2 安装与配置Hive118
- 4.2.1 Hive集群基础架构119
- 4.2.2 利用HAProxy实现Hive Server负载均衡120
- 4.2.3 安装分布式Hive集群123
- 4.3 可编程方式126
- 4.3.1 数据类型126
- 4.3.2 存储格式128
- 4.3.3 基础命令129
- 4.3.4 Java编程语言操作数据仓库(Hive)131
- 4.3.5 实践Hive Streaming134
- 4.4 运维和监控138
- 4.4.1 基础命令138
- 4.4.2 监控工具Hive Cube140
- 4.5 小结143
- 第5章 游戏玩家的用户行为分析——特征提取144
- 5.1 项目应用概述144
- 5.1.1 场景介绍144
- 5.1.2 平台架构与数据采集145
- 5.1.3 准备系统环境和软件147
- 5.2 分析与设计148
- 5.2.1 整体分析148
- 5.2.2 指标与数据源分析149
- 5.2.3 整体设计151
- 5.3 技术选型153
- 5.3.1 套件选取简述154
- 5.3.2 套件使用简述154
- 5.4 编码实践157
- 5.4.1 实现代码157
- 5.4.2 统计结果处理163
- 5.4.3 应用调度169
- 5.5 小结174
- 第6章 Hadoop平台管理与维护175
- 6.1 Hadoop分布式文件系统(HDFS)175
- 6.1.1 HDFS特性175
- 6.1.2 基础命令详解176
- 6.1.3 解读NameNode Standby179
- 6.2 Hadoop平台监控182
- 6.2.1 Hadoop日志183
- 6.2.2 常用分布式监控工具187
- 6.3 平台维护196
- 6.3.1 安全模式196
- 6.3.2 节点管理198
- 6.3.3 HDFS快照200
- 6.4 小结203
- 第7章 Hadoop异常处理解决方案204
- 7.1 定位异常204
- 7.1.1 跟踪日志204
- 7.1.2 分析异常信息208
- 7.1.3 阅读开发业务代码209
- 7.2 解决问题的方式210
- 7.2.1 搜索关键字211
- 7.2.2 查看Hadoop JIRA212
- 7.2.3 阅读相关源码213
- 7.3 实战案例分析216
- 7.3.1 案例分析1:启动HBase失败216
- 7.3.2 案例分析2:HBase表查询失败219
- 7.3.3 案例分析3:Spark的临时数据不自动清理222
- 7.4 小结223
- 第8章 初识Hadoop核心源码224
- 8.1 基础准备与源码编译224
- 8.1.1 准备环境224
- 8.1.2 加载源码228
- 8.1.3 编译源码230
- 8.2 初识Hadoop 2233
- 8.2.1 Hadoop的起源233
- 8.2.2 Hadoop 2源码结构图234
- 8.2.3 Hadoop模块包235
- 8.3 MapReduce框架剖析236
- 8.3.1 第一代MapReduce框架236
- 8.3.2 第二代MapReduce框架238
- 8.3.3 两代MapReduce框架的区别239
- 8.3.4 第二代MapReduce框架的重构思路240
- 8.4 序列化241
- 8.4.1 序列化的由来242
- 8.4.2 Hadoop序列化243
- 8.4.3 Writable实现类245
- 8.5 小结247
- 第9章 Hadoop通信机制和内部协议248
- 9.1 Hadoop RPC概述248
- 9.1.1 通信模型248
- 9.1.2 Hadoop RPC特点250
- 9.2 Hadoop R