这是一本适合教学和零基础自学的Hadoop与大数据挖掘的教程,即便你没有Hadoop编程基础和大数据挖掘基础,根据本书中的理论知识和上机实践,也能迅速掌握如何使用Hadoop进行大数据挖掘。全书主要分为两篇:基础篇(1-7章),首先从宏观上介绍了大数据相关概念和技术,然后逐一对Hadoop、Hive、HBase、Pig、Spark、Oozie等一系列大数据技术的概念、原理、架构,以及企业应用方法进行了详细介绍,同时配有大量的案例。掌握了这些内容,就具备了大数据技术的基础;挖掘实战篇(第8章),主要是一个企业级大数据应用项目——电子商务智能推荐系统。通过分析应用背景、构建系统,使读者了解针对系统的每一层应用使用什么大数据技术来解决问题。涉及的流程有数据采集、数据预处理、模型构建等,在每一个流程中会进行大数据相关技术实践,运用实际数据来进行分析,使读者切身感受到利用大数据技术解决问题的魅力。
Contents 目录
前
及时篇 基础篇
第1章 浅谈大数据2
1.1 大数据概述3
1.2 大数据平台4
1.3 本章小结5
第2章 大数据存储与运算利器—Hadoop6
2.1 Hadoop概述6
2.1.1 Hadoop简介6
2.1.2 Hadoop存储—HDFS8
2.1.3 Hadoop计算—MapReduce11
2.1.4 Hadoop资源管理—YARN13
2.1.5 Hadoop生态系统14
2.2 Hadoop配置及IDE配置17
2.2.1 准备工作17
2.2.2 环境配置18
2.2.3 集群启动关闭与监控24
2.2.4 动手实践:一键式Hadoop集群启动关闭25
2.2.5 动手实践:Hadoop IDE配置26
2.3 Hadoop集群命令28
2.3.1 HDFS常用命令hdfs dfs30
2.3.2 动手实践:hdfs dfs命令实战31
2.3.3 MapReduce常用命令mapred job32
2.3.4 YARN常用命令yarn jar32
2.3.5 动手实践:运行MapReduce任务33
2.4 Hadoop编程开发33
2.4.1 HDFS Java API操作33
2.4.2 MapReduce原理35
2.4.3 动手实践:编写Word Count程序并打包运行44
2.4.4 MapReduce组件分析与编程实践46
2.5 K-Means算法原理及HadoopMapReduce实现53
2.5.1 K-Means算法原理53
2.5.2 动手实践:K-Means算法实现55
2.5.3 Hadoop K-Means算法实现思路55
2.5.4 Hadoop K-Means编程实现57
2.6 TF-IDF算法原理及HadoopMapReduce实现67
2.6.1 TF-IDF算法原理67
2.6.2 Hadoop TF-IDF编程思路67
2.6.3 Hadoop TF-IDF编程实现68
2.7 本章小结79
第3章 大数据查询—Hive81
3.1 Hive概述81
3.1.1 Hive体系架构82
3.1.2 Hive数据类型86
3.1.3 Hive安装87
3.1.4 动手实践:Hive安装配置91
3.1.5 动手实践:HiveQL基础—SQL91
3.2 HiveQL语句93
3.2.1 数据库操作94
3.2.2 Hive表定义94
3.2.3 数据导入100
3.2.4 数据导出103
3.2.5 HiveQL查询104
3.3 动手实践:基于Hive的学生信息查询108
3.4 基于Hive的航空公司客户价值数据预处理及分析109
3.4.1 背景与挖掘目标109
3.4.2 分析方法与过程111
3.5 本章小结115
第4章 大数据快速读写—HBase116
4.1 HBase概述116
4.2 配置HBase集群118
4.2.1 Zookeeper简介及配置118
4.2.2 配置HBase121
4.2.3 动手实践:HBase安装及运行122
4.2.4 动手实践:ZooKeeper获取HBase状态122
4.3 HBase原理与架构组件123
4.3.1 HBase架构与组件123
4.3.2 HBase数据模型127
4.3.3 读取/写入HBase数据128
4.3.4 RowKey设计原则129
4.3.5 动手实践:HBase数据模型验证131
4.4 HBase Shell操作132
4.4.1 HBase常用Shell命令132
4.4.2 动手实践:HBase Shell操作136
4.5 Java API &MapReduce与HBase交互137
4.5.1 搭建HBase开发环境137
4.5.2 使用Java API操作HBase表144
4.5.3 动手实践:HBase Java API使用147
4.5.4 MapReduce与HBase交互147
4.5.5 动手实践:HBase表导入导出150
4.6 基于HBase的冠字号查询系统151
4.6.1 案例背景151
4.6.2 功能指标151
4.6.3 系统设计152
4.6.4 动手实践:构建基于HBase的冠字号查询系统162
4.7 本章小结175
第5章 大数据处理—Pig176
5.1 Pig概述176
5.1.1 Pig Latin简介177
5.1.2 Pig数据类型179
5.1.3 Pig与Hive比较179
5.2 配置运行Pig180
5.2.1 Pig配置181
5.2.2 Pig运行模式181
5.3 常用Pig Latin操作182
5.3.1 数据加载182
5.3.2 数据存储184
5.3.3 Pig参数替换185
5.3.4 数据转换186
5.4 综合实践194
5.4.1 动手实践:访问统计信息数据处理194
5.4.2 动手实践:股票交易数据处理195
5.5 本章小结196
第6章 大数据快速运算与挖掘—Spark197
6.1 Spark概述197
6.2 Spark安装集群199
6.2.1 3种运行模式199
6.2.2 动手实践:配置Spark独立集群199
6.2.3 3种运行模式实例201
6.2.4 动手实践:Spark Streaming实时日志统计205
6.2.5 动手实践:Spark开发环境—Intellij IDEA配置207
6.3 Spark架构与核心原理212
6.3.1 Spark架构212
6.3.2 RDD原理213
6.3.3 深入理解Spark核心原理215
6.4 Spark编程技巧218
6.4.1 Scala基础218
6.4.2 Spark基础编程218
6.5 如何学习Spark MLlib225
6.5.1 确定应用227
6.5.2 ALS算法直观描述228
6.5.3 编程实现229
6.5.4 问题解决及模型调优233
6.6 动手实践:基于Spark ALS电影推荐系统234
6.6.1 动手实践:生成算法包235
6.6.2 动手实践:完善推荐系统239
6.7 本章小结250
第7章 大数据工作流—Oozie252
7.1 Oozie简介252
7.2 编译配置并运行Oozie253
7.2.1 动手实践:编译Oozie253
7.2.2 动手实践:Oozie Server/client配置254
7.3 Oozie WorkFlow实践257
7.3.1 定义及提交工作流257
7.3.2 动手实践:MapReduce Work-Flow定义及调度260
7.3.3 动手实践:Pig WorkFlow定义及调度263
7.3.4 动手实践:Hive WorkFlow定义及调度265
7.3.5 动手实践:Spark WorkFlow定义及调度267
7.3.6 动手实践:Spark On Yarn定义及调度268
7.4 Oozie Coordinator实践270
7.4.1 动手实践:基于时间调度270
7.4