目 录
前言
第一部分 基础
第1章 大数据计算系统概述2
1.1 大数据计算系统的定义2
1.1.1 大数据2
1.1.2 大数据计算4
1.1.3 大数据计算系统4
1.2 常见的大数据计算系统6
1.2.1 批处理计算框架Hadoop6
1.2.2 分布式计算框架Spark6
1.2.3 流计算系统Storm7
1.2.4 分布式图计算框架GraphX7
1.2.5 大数据计算系统的对比7
1.3 大数据计算系统的监控与
运维概述7
1.3.1 概述7
1.3.2 监控与运维的范围8
1.3.3 大数据计算系统的监控与
运维方法8
1.3.4 大数据计算系统的运维目标9
1.4 大数据计算系统的性能优化10
1.4.1 提升大数据计算系统
性能的途径10
1.4.2 提升大数据计算系统
性能的难度11
1.4.3 运维与性能优化的关系12
习题112
第二部分 应用实现
第2章 Hadoop的配置与编程14
2.1 批处理计算框架概述14
2.1.1 计算框架14
2.1.2 批处理15
2.2 Hadoop环境的配置与搭建15
2.2.1 环境配置前的准备15
2.2.2 Hadoop安装的预备知识16
2.2.3 本地/独立模式的配置17
2.2.4 伪分布式模式的配置18
2.2.5 全分布式模式的配置20
2.3 一个简单示例22
2.3.1 环境与数据的准备22
2.3.2 在IDEA下建立基于Maven
的Hadoop项目23
2.3.3 编写WordCount程序26
2.3.4 Hadoop程序的运行过程与
结果查看29
2.4 MapReduce编程30
2.4.1 MapReduce计算模型30
2.4.2 MapReduce程序的运行过程32
2.4.3 去重38
习题241
第3章 HDFS及其应用42
3.1 HDFS概述42
3.2 HDFS Shell43
3.2.1 概述43
3.2.2 帮助的使用方法44
3.2.3 通用命令行操作45
3.3 HDFS目录与数据的浏览47
3.4 HDFS API48
3.4.1 概述48
3.4.2 读文件操作48
3.4.3 写文件操作48
3.4.4 FileUtil文件处理49
3.4.5 HDFS API应用示例51
习题357
第4章 Spark的配置与编程58
4.1 Spark环境的安装与部署59
4.1.1 Spark的安装59
4.1.2 Scala的安装60
4.1.3 Spark的源码编译61
4.1.4 搭建Spark单机版环境64
4.1.5 搭建Spark独立运行环境66
4.1.6 搭建Spark on YARN环境68
4.1.7 Spark的高可用性部署70
4.2 Spark的运行72
4.2.1 Spark程序运行概述72
4.2.2 Spark的本地运行过程73
4.2.3 独立运行模式74
4.2.4 Spark on YARN的运行过程75
4.2.5 独立运行模式与YARN
模式的比较76
4.3 Spark Scala编程76
4.3.1 Scala的语法76
4.3.2 Scala编程入门82
4.3.3 Spark API的使用86
4.3.4 用Scala开发Spark应用
程序的案例88
4.3.5 程序运行过程的分析93
习题495
第5章 Storm的配置与编程96
5.1 流计算概述96
5.2 Storm概述98
5.2.1 什么是Storm98
5.2.2 Storm的特征98
5.3 Storm开发环境的搭建99
5.3.1 Storm环境的配置99
5.3.2 命令行客户端102
5.3.3 IDEA下建立Storm的
Maven项目107
5.4 Storm编程109
5.4.1 可以与Storm集成的系统109
5.4.2 计算模型109
5.4.3 可以使用任何语言110
5.4.4 简单的API110
5.5 Storm编程示例—单词计数110
5.5.1 实现目标110
5.5.2 建立编写程序的包名111
5.5.3 编写spouts文件Word-
Reader112
5.5.4 编写bolts文件Word-
Normalizer114
5.5.5 编写bolts文件WordCounter115
5.5.6 编写主函数文件Topologoy-
Main116
5.5.7 通过主函数文件Topologoy-
Main运行程序117
习题5117
第6章 GraphX及其应用118
6.1 图计算概述118
6.1.1 图118
6.1.2 属性图119
6.1.3 图计算119
6.1.4 支持图计算的GraphX120
6.2 GraphX编程120
6.2.1 GraphX项目的导入120
6.2.2 GraphX中属性图的表达120
6.2.3 图操作符121
6.3 GraphX编程示例126
6.3.1 一个简单的GraphX示例126
6.3.2 GraphX应用编程—
子图发现129
6.3.3 GraphX应用编程—
PageRank130
习题6132
第三部分 原理
第7章 Hadoop的原理134
7.1 Hadoop的体系结构134
7.2 MapReduce的工作机制135
7.2.1 背景135
7.2.2 计算的执行流程137
7.2.3 计算的本地性138
7.3 MapReduce作业的运行机制139
7.3.1 经典的MapReduce139
7.3.2 YARN145
7.4 作业的调