图书目录

第1篇  大数据系统基础

第1章  大数据概述 3

1.1  数据的产生与发展 3

1.2  大数据的基础知识 4

1.3  大数据架构 5

第2章  系统的安装与使用 7

2.1  系统安装 7

 2.1.1  安装CentOS 6.x 7

 2.1.2  安装步骤 7

2.2  基本命令 18

 2.2.1  cd命令 18

 2.2.2  打包和解压指令 19

 2.2.3  其他常用命令 21

2.3  权限与目录 26

 2.3.1  权限 26

 2.3.2  目录 27

2.4  文件操作 28

 2.4.1  文件与目录管理 28

 2.4.2  用户和用户组管理 39

2.5  习题与思考 46

第3章  任务命令 47

3.1  脚本配置 47

 3.1.1  Shell脚本 47

 3.1.2  Shell变量 47

 3.1.3  Shell传递参数 48

 3.1.4  Shell数组 50

 3.1.5  Shell运算符 51

 3.1.6  Shell echo命令 55

 3.1.7  Shell printf命令 57

 3.1.8  Shell test命令 58

 3.1.9  Shell流程控制 60

3.2  网络配置 67

3.3  习题与思考 70

第4章  数据库操作 71

4.1  数据库简介 71

 4.1.1  MySQL数据库简介 71

 4.1.2  安装MySQL 72

4.2  数据库基本操作 72

 4.2.1  MySQL的DDL操作 72

 4.2.2  MySQL的DML操作 80

4.3  数据库用户操作 83

 4.3.1  创建用户 83

 4.3.2  给用户授权 83

 4.3.3  撤销授权 84

 4.3.4  查看用户权限 85

 4.3.5  删除用户 85

 4.3.6  修改用户密码 86

4.4  数据库查询操作 86

4.5  习题与思考 90

第2篇  Hadoop技术

第5章  Hadoop开发环境 95

5.1  Hadoop生态圈工具 95

5.2  环境搭建 97

 5.2.1  步骤1——虚拟机安装 97

 5.2.2  步骤2——安装JDK和Hadoop 97

 5.2.3  步骤3——复制虚拟机 113

 5.2.4  步骤4——设置免密 117

 5.2.5  步骤5——安装Zookeeper 119

 5.2.6  步骤6——启动Hadoop集群 122

 5.2.7  正常启动顺序 125

5.3  常见问题汇总 127

5.4  习题与思考 128

第6章  HDFS技术 129

6.1  HDFS架构 129

6.2  HDFS命令 130

 6.2.1  version命令 131

 6.2.2  dfsadmin命令 131

 6.2.3  jar命令 132

 6.2.4  fs命令 132

6.3  API的使用 140

6.4  习题与思考 142

第7章  MapReduce技术 143

7.1  MapReduce工作原理 143

 7.1.1  MapReduce作业运行流程 143

 7.1.2  早期MapReduce架构存在的问题 144

7.2  YARN运行概述 144

 7.2.1  YARN模块介绍 144

 7.2.2  YARN工作流程 145

7.3  MapReduce编程模型 146

7.4  MapReduce数据流 148

 7.4.1  输入文件 150

 7.4.2  输入格式 150

 7.4.3  数据片段 151

 7.4.4  记录读取器 151

 7.4.5  Mapper 151

 7.4.6  Shuffle 152

 7.4.7  排序 153

 7.4.8  归约 153

 7.4.9  输出格式 153

7.5  MapReduce API编程 154

 7.5.1  词频统计 154

 7.5.2  指定字段 156

 7.5.3  求平均数 158

 7.5.4  关联 160

7.6  习题与思考 163

第8章  Hive数据仓库 165

8.1  Hive模型 165

 8.1.1  Hive架构与基本组成 165

 8.1.2  Hive的数据模型 166

8.2  Hive的安装 167

 8.2.1  Hive的基本安装 167

 8.2.2  MySQL的安装 168

 8.2.3  Hive配置 169

8.3  HQL详解 170

 8.3.1  Hive数据管理方式 170

 8.3.2  HQL操作 174

8.4  习题与思考 182

第9章  HBase分布式数据库 183

9.1  HBase工作原理 183

 9.1.1  HBase表结构 183

 9.1.2  体系结构 184

 9.1.3  物理模型 186

 9.1.4  HBase读写流程 187

9.2  HBase完全分布式 189

 9.2.1  安装前的准备 189

 9.2.2  配置文件 189

 9.2.3  集群启动 191

9.3  HBase Shell 192

 9.3.1  DDL操作 192

 9.3.2  DML操作 194

9.4  习题与思考 197

第10章  Sqoop工具 198

10.1  Sqoop安装 199

10.2  Sqoop的使用 200

 10.2.1  MySQL的导入导出 200

 10.2.2  Oracle的导入导出 201

10.3  习题与思考 202

第11章  Flume日志收集 203

11.1  体系架构 204

 11.1.1  Flume内部结构 204

 11.1.2  Flume事件 204

11.2  Flume的特点 205

11.3  Flume集群搭建 206

11.4  Flume实例 207

 11.4.1  实例1:实时测试客户端传输的数据 207

 11.4.2  实例2:监控本地文件夹并写入到HDFS中 208

11.5  习题与思考 210

第3篇  Spark技术

第12章  Spark概述 213

12.1  Spark框架原理 213

12.2  Spark大数据处理 214

12.3  RDD数据集 215

12.4  Spark子系统 215

第13章  Scala语言 216

13.1  Scala语法基础 216

 13.1.1  变量、常量与赋值 216

 13.1.2  运算符与表达式 217

 13.1.3  条件分支控制 217

 13.1.4  循环流程控制 218

 13.1.5  Scala数据类型 218

13.2  Scala运算与函数 219

13.3  Scala闭包 220

13.4  Scala数组与字符串 220

 13.4.1  Scala数组 220

 13.4.2  Scala字符串 221

13.5  Scala迭代器 221

13.6  Scala类和对象 222

13.7  习题与思考 223

第14章  Spark高可用环境 224

14.1  环境搭建 224

 14.1.1  准备工作 224

 14.1.2  下载并安装Spark 224

14.2  常见问题汇总 226

第15章  RDD技术 228

15.1  RDD的实现 228

 15.1.1  数据源 228

 15.1.2  调度器 228

15.2  RDD编程接口 229

15.3  RDD操作 229

 15.3.1  Spark基于命令行的操作 229

 15.3.2  Spark基于应用作业的操作 231

 15.3.3  Spark操作的基础命令与开发工具介绍 231

 15.3.4  Spark基于YARN的调度模式 231

 15.3.5  Spark基于Scala语言的本地应用开发 234

 15.3.6  Spark基于Scala语言的集群应用开发 235

 15.3.7  Spark基于Java语言的应用开发 236

 15.3.8  Spark基于Java语言的本地应用开发 237

 15.3.9  Spark基于Java语言的集群应用开发 238

15.4  习题与思考 241

第16章  Spark SQL 242

16.1  Spark SQL架构原理 242

 16.1.1  Hive的两种功能 242

 16.1.2  Spark SQL的重要功能 242

 16.1.3  Spark SQL的DataFrame特征 243

16.2  Spark SQL操作Hive 243

 16.2.1  添加配置文件,便于Spark SQL访问Hive仓库 243

 16.2.2  安装JDBC驱动 243

 16.2.3  启动MySQL服务及其Hive的元数据服务 243

 16.2.4  启动HDFS集群和Spark集群 244

 16.2.5  启动Spark-Shell并测试 244

16.3  Spark SQL操作HDFS 244

 16.3.1  操作代码 244

 16.3.2  工程文件 246

 16.3.3  创建测试数据 246

 16.3.4  运行Job并提交到集群 247

 16.3.5  查看运行结果 247

16.4  Spark SQL操作关系数据库 248

 16.4.1  添加访问MySQL的驱动包 248

 16.4.2  添加必要的开发环境 248

 16.4.3  使用Spark SQL操作关系数据库 248

 16.4.4  初始化MySQL数据库服务 250

 16.4.5  准备Spark SQL源数据 251

 16.4.6  运行Spark代码 252

 16.4.7  创建dist文件夹 252

 16.4.8  安装数据库驱动 252

 16.4.9  基于集群操作 253

 16.4.10  打包工程代码到dist目录下 256

 16.4.11  启动集群并提交Job应用 256

 16.4.12  检查关系数据库中是否已有数据 258

16.5  习题与思考 258

第17章  Spark Streaming 260

17.1  架构与原理 260

 17.1.1  Spark Streaming中的离散流特征 260

 17.1.2  Spark Streaming的应用场景 260

17.2  KafKa中间件 261

 17.2.1  KafKa的特点 261

 17.2.2  ZeroCopy技术 261

 17.2.3  KafKa的通信原理 261

 17.2.4  KafKa的内部存储结构 262

 17.2.5  KafKa的下载 262

 17.2.6  KafKa集群搭建 262

 17.2.7  启动并使用KafKa集群 263

 17.2.8  停止KafKa集群 264

 17.2.9  KafKa集成Flume 264

17.3  Socket事件流操作 265

 17.3.1  netcat网络Socket控制台工具 265

 17.3.2  基于本地的Spark Streaming流式数据分析示例 266

 17.3.3  基于集群的Spark Streaming流式数据分析示例 269

 17.3.4  基于集群模式下的集群文件I/O流分析示例 272

17.4  KafKa事件流操作 275

 17.4.1  基于Receiver模式的KafKa集成 275

 17.4.2  基于Direct模式的KafKa集成 278

17.5  I/O文件事件流操作 280

 17.5.1  基于路径扫描的Spark Streaming 281

 17.5.2  打包至工程的dist目录 284

 17.5.3  启动集群 284

第18章  Spark机器学习 289

18.1  机器学习原理 289

 18.1.1  机器学习的概念 289

 18.1.2  机器学习的分类 289

 18.1.3  Spark机器学习的版本演变 290

 18.1.4  DataFrame数据结构 290

 18.1.5  DataSet数据结构 290

 18.1.6  执行引擎的性能与效率 290

 18.1.7  Spark 2.x的新特性 290

18.2  线性回归 291

 18.2.1  线性回归分析过程 291

 18.2.2  矩阵分析过程 291

 18.2.3  基于本地模式的线性回归分析 291

 18.2.4  基于集群模式的线性回归分析 294

18.3  聚类分析 300

 18.3.1  K-Means聚类算法原理 300

 18.3.2  聚类分析过程 300

 18.3.3  基于本地模式的聚类算法分析 301

 18.3.4  基于集群模式的聚类算法分析 305

18.4  协同过滤 312

 18.4.1  个性化推荐算法 312

 18.4.2  相关性推荐算法 312

 18.4.3  基于本地的协同过滤算法分析 312

 18.4.4  基于集群的协同过滤算法分析 317

第4篇  项目实战

第19章  基于电力能源的大数据实战 325

19.1  需求分析 325

19.2  项目设计 325

 19.2.1  数据采集 325

 19.2.2  数据处理 326

 19.2.3  数据呈现 326

19.3  数据收集与处理 329

 19.3.1  数据收集 329

 19.3.2  数据处理 329

19.4  大数据呈现 341

 19.4.1  数据传输 341

 19.4.2  数据呈现 342

19.5  项目总结 343