《深入理解大数据 大数据处理与编程实践》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:黄宜华主编;苗凯翔副主编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111473251
  • 页数:488 页
图书介绍:本书从Hadoop MapReduce并行计算技术与系统的基本原理剖析着手,在系统介绍基本工作原理、编程模型、编程框架和接口的基础上,着重系统化地介绍MapReduce并行算法设计与编程技术,较为全面地介绍了基本MapReduce算法设计、高级MapReduce编程技术、以及一系列较为复杂的机器学习和数据挖掘并行化算法,并引入来自Intel Hadoop系统产品的一系列增强功能以及深度技术剖析;最后,为了提高读者的算法设计与编程实战能力,本书较为详细地介绍了一系列综合性和实战性大数据处理和算法设计问题,这些问题来自课程同学参加的全国性大数据大赛中的获奖算法、课程中的优秀课程设计、以及来自本团队的科研课题及业界实际的大数据应用实战案例。

第一部分 Hadoop系统 2

第1章 大数据处理技术简介 2

1.1 并行计算技术简介 2

1.1.1 并行计算的基本概念 2

1.1.2 并行计算技术的分类 6

1.1.3 并行计算的主要技术问题 10

1.2 大数据处理技术简介 13

1.2.1 大数据的发展背景和研究意义 13

1.2.2 大数据的技术特点 16

1.2.3 大数据研究的主要目标、基本原则和基本途径 17

1.2.4 大数据计算模式和系统 18

1.2.5 大数据计算模式的发展趋势 21

1.2.6 大数据的主要技术层面和技术内容 22

1.3 MapReduce并行计算技术简介 25

1.3.1 MapReduce的基本概念和由来 25

1.3.2 MapReduce的基本设计思想 26

1.3.3 MapReduce的主要功能和技术特征 28

1.4 Hadoop系统简介 30

1.4.1 Hadoop的概述与发展历史 30

1.4.2 Hadoop系统分布式存储与并行计算构架 31

1.4.3 Hadoop平台的基本组成与生态系统 33

1.4.4 Hadoop的应用现状和发展趋势 37

第2章 Hadoop系统的安装与操作管理 39

2.1 Hadoop系统安装方法简介 39

2.2 单机和单机伪分布式Hadoop系统安装基本步骤 39

2.2.1 安装和配置JDK 40

2.2.2 创建Hadoop用户 40

2.2.3 下载安装Hadoop 40

2.2.4 配置SSH 41

2.2.5 配置Hadoop环境 42

2.2.6 Hadoop的运行 43

2.2.7 运行测试程序 43

2.2.8 查看集群状态 44

2.3 集群分布式Hadoop系统安装基本步骤 44

2.3.1 安装和配置JDK 44

2.3.2 创建Hadoop用户 45

2.3.3 下载安装Hadoop 45

2.3.4 配置SSH 45

2.3.5 配置Hadoop环境 46

2.3.6 Hadoop的运行 48

2.3.7 运行测试程序 48

2.3.8 查看集群状态 49

2.4 Hadoop MapReduce程序开发过程 49

2.5 集群远程作业提交与执行 53

2.5.1 集群远程作业提交和执行过程 53

2.5.2 查看作业执行结果和集群状态 53

第3章 大数据存储——分布式文件系统HDFS 56

3.1 HDFS的基本特征与构架 56

3.1.1 HDFS的基本特征 57

3.1.2 HDFS的基本框架与工作过程 57

3.2 HDFS可靠性设计 60

3.2.1 HDFS数据块多副本存储设计 60

3.2.2 HDFS可靠性的设计实现 61

3.3 HDFS文件存储组织与读写 63

3.3.1 文件数据的存储组织 63

3.3.2 数据的读写过程 65

3.4 HDFS文件系统操作命令 68

3.4.1 HDFS启动与关闭 68

3.4.2 HDFS文件操作命令格式与注意事项 69

3.4.3 HDFS文件操作命令 69

3.4.4 高级操作命令和工具 77

3.5 HDFS基本编程接口与示例 83

3.5.1 HDFS编程基础知识 83

3.5.2 HDFS基本文件操作API 84

3.5.3 HDFS基本编程实例 87

第4章 Hadoop MapReduce并行编程框架 91

4.1 MapReduce基本编程模型和框架 91

4.1.1 MapReduce并行编程抽象模型 91

4.1.2 MapReduce的完整编程模型和框架 93

4.2 Hadoop MapReduce基本构架与工作过程 96

4.2.1 Hadoop系统构架和MapReduce程序执行过程 96

4.2.2 Hadoop MapReduce执行框架和作业执行流程 98

4.2.3 Hadoop MapReduce作业调度过程和调度方法 102

4.2.4 MapReduce执行框架的组件和执行流程 106

4.3 Hadoop MapReduce主要组件与编程接口 107

4.3.1 数据输入格式InputFormat 107

4.3.2 输入数据分块InputSplit 109

4.3.3 数据记录读入RecordReader 110

4.3.4 Mapper类 112

4.3.5 Combiner 114

4.3.6 Partitioner 115

4.3.7 Sort 116

4.3.8 Reducer类 119

4.3.9 数据输出格式OutputFormat 120

4.3.10 数据记录输出RecordWriter 122

第5章 分布式数据库HBase 123

5.1 HBase简介 123

5.1.1 为什么需要NoSQL数据库 123

5.1.2 HBase的作用和功能特点 125

5.2 HBase的数据模型 126

5.2.1 HBase的基本数据模型 126

5.2.2 HBase的查询模式 128

5.2.3 HBase表设计 129

5.3 HBase的基本构架与数据存储管理方法 132

5.3.1 HBase在Hadoop生态中的位置和关系 132

5.3.2 HBase的基本组成结构 133

5.3.3 HBase Region 133

5.3.4 Region Server 135

5.3.5 HBase的总体组成结构 138

5.3.6 HBase的寻址和定位 139

5.3.7 HBase节点的上下线管理 142

5.4 HBase安装与操作 145

5.4.1 安装一个单机版的HBase 145

5.4.2 HBase Shell操作命令 146

5.4.3 基于集群的HBase安装和配置 149

5.5 HBase的编程接口和编程示例 152

5.5.1 表创建编程接口与示例 152

5.5.2 表数据更新编程接口与示例 153

5.5.3 数据读取编程接口与示例 155

5.5.4 HBase MapReduce支持和编程示例 157

5.6 HBase的读写操作和特性 161

5.6.1 HBase的数据写入 161

5.6.2 HBase的数据读取 171

5.7 其他HBase功能 173

5.7.1 Coprocessor 173

5.7.2 批量数据导入BulkLoad 176

第6章 分布式数据仓库Hive 179

6.1 Hive的作用与结构组成 179

6.2 Hive的数据模型 181

6.2.1 Hive的数据存储模型 181

6.2.2 Hive的元数据存储管理 182

6.2.3 Hive的数据类型 183

6.3 Hive的安装 184

6.3.1 下载Hive安装包 184

6.3.2 配置环境变量 184

6.3.3 创建Hive数据文件目录 185

6.3.4 修改Hive配置文件 185

6.4 Hive查询语言——HiveQL 188

6.4.1 DDL语句 188

6.4.2 DML语句 189

6.4.3 SELECT查询语句 190

6.4.4 数据表操作语句示例 190

6.4.5 分区的使用 192

6.4.6 桶的使用 193

6.4.7 子查询 194

6.4.8 Hive的优化和高级功能 194

6.5 Hive JDBC编程接口与程序设计 196

第7章 Intel Hadoop系统优化与功能增强 200

7.1 Intel Hadoop系统简介 200

7.1.1 Intel Hadoop系统的主要优化和增强功能 200

7.1.2 Intel Hadoop的系统构成与组件 201

7.2 Intel Hadoop系统的安装和管理 202

7.3 Intel Hadoop HDFS的优化和功能扩展 202

7.3.1 HDFS的高可用性 203

7.3.2 Intel Hadoop系统高可用性配置服务 204

7.3.3 Intel Hadoop系统高可用性配置服务操作 206

7.3.4 自适应数据块副本调整策略 208

7.4 Intel Hadoop HBase的功能扩展和编程示例 211

7.4.1 HBase大对象存储(LOB) 211

7.4.2 加盐表 212

7.4.3 HBase跨数据中心大表 213

7.5 Intel Hadoop Hive的功能扩展和编程示例 216

7.5.1 开源Hive的不足 216

7.5.2 IntelHadoop“HiveoverHBase”优化设计 216

7.5.3 Hive overHBase的架构 216

第二部分 MapReduce的编程和算法设计 220

第8章 MapReduce基础算法程序设计 220

8.1 WordCount 220

8.1.1 WordCount算法编程实现 220

8.2 矩阵乘法 223

8.2.1 矩阵乘法原理和实现思路 223

8.2.2 矩阵乘法的MapReduce程序实现 224

8.3 关系代数运算 227

8.3.1 选择操作 227

8.3.2 投影操作 228

8.3.3 交运算 229

8.3.4 差运算 230

8.3.5 自然连接 231

8.4 单词共现算法 233

8.4.1 单词共现算法的基本设计 233

8.4.2 单词共现算法的实现 234

8.4.3 单词共现算法实现中的细节问题 235

8.5 文档倒排索引 237

8.5.1 简单的文档倒排索引 237

8.5.2 带词频等属性的文档倒排索引 239

8.6 PageRank网页排名算法 242

8.6.1 PageRank的简化模型 243

8.6.2 PageRank的随机浏览模型 244

8.6.3 PageRank的MapReduce实现 245

8.7 专利文献分析算法 249

8.7.1 构建专利被引用列表 250

8.7.2 专利被引用次数统计 251

8.7.3 专利被引用次数直方图统计 252

8.7.4 按照年份或国家统计专利数 254

第9章 MapReduce高级程序设计技术 256

9.1 简介 256

9.2 复合键值对的使用 257

9.2.1 把小的键值对合并成大的键值对 257

9.2.2 巧用复合键让系统完成排序 259

9.3 用户定制数据类型 262

9.3.1 Hadoop内置的数据类型 263

9.3.2 用户自定义数据类型的实现 263

9.4 用户定制数据输入输出格式 264

9.4.1 Hadoop内置的数据输入格式与RecordReader 265

9.4.2 用户定制数据输入格式与RecordReader 265

9.4.3 Hadoop内置的数据输出格式与RecordWriter 269

9.4.4 用户定制数据输出格式与RecordWriter 269

9.4.5 通过定制数据输出格式实现多集合文件输出 270

9.5 用户定制Partitioner和Combiner 271

9.5.1 用户定制Partitioner 272

9.5.2 用户定制Combiner 273

9.6 组合式MapReduce计算作业 274

9.6.1 迭代MapReduce计算任务 274

9.6.2 顺序组合式MapReduce作业的执行 275

9.6.3 具有复杂依赖关系的组合式MapReduce作业的执行 275

9.6.4 MapReduce前处理和后处理步骤的链式执行 276

9.7 多数据源的连接 278

9.7.1 基本问题数据示例 279

9.7.2 用DataJoin类实现Reduce端连接 279

9.7.3 用全局文件复制方法实现Map端连接 285

9.7.4 带Map端过滤的Reduce端连接 287

9.7.5 多数据源连接解决方法的限制 288

9.8 全局参数/数据文件的传递与使用 288

9.8.1 全局作业参数的传递 288

9.8.2 查询全局的MapReduce作业属性 290

9.8.3 全局数据文件的传递 291

9.9 关系数据库的连接与访问 292

9.9.1 从数据库中输入数据 292

9.9.2 向数据库中输出计算结果 292

第10章 MapReduce数据挖掘基础算法 295

10.1 K-Means聚类算法 295

10.1.1 K-Means聚类算法简介 295

10.1.2 基于MapReduce的K-Means算法的设计实现 297

10.2 KNN最近邻分类算法 300

10.2.1 KNN最近邻分类算法简介 300

10.2.2 基于MapReduce的KNN算法的设计实现 301

10.3 朴素贝叶斯分类算法 303

10.3.1 朴素贝叶斯分类算法简介 303

10.3.2 朴素贝叶斯分类并行化算法的设计 304

10.3.3 朴素贝叶斯分类并行化算法的实现 306

10.4 决策树分类算法 310

10.4.1 决策树分类算法简介 310

10.4.2 决策树并行化算法的设计 313

10.4.3 决策树并行化算法的实现 317

10.5 频繁项集挖掘算法 327

10.5.1 频繁项集挖掘问题描述 327

10.5.2 Apriori频繁项集挖掘算法简介 328

10.5.3 Apriori频繁项集挖掘并行化算法的设计 329

10.5.4 Apriori频繁项集挖掘并行化算法的实现 331

10.5.5 基于子集求取的频繁项集挖掘算法的设计 335

10.5.6 基于子集求取的频繁项集挖掘并行化算法的实现 336

10.6 隐马尔科夫模型和最大期望算法 340

10.6.1 隐马尔科夫模型的基本描述 340

10.6.2 隐马尔科夫模型问题的解决方法 341

10.6.3 最大期望算法概述 345

10.6.4 并行化隐马尔科夫算法设计 345

10.6.5 隐马尔科夫算法的并行化实现 348

第11章 大数据处理算法设计与应用编程案例 352

11.1 基于MapReduce的搜索引擎算法 352

11.1.1 搜索引擎工作原理简介 353

11.1.2 基于MapReduce的文档颚处理 354

11.1.3 基于MapReduce的文档倒排索引构建 356

11.1.4 建立Web信息查询服务 363

11.2 基于MapReduce的大规模短文本多分类算法 365

11.2.1 短文本多分类算法工作原理简介 365

11.2.2 并行化分类训练算法设计实现 366

11.2.3 并行化分类预测算法设计实现 369

11.3 基于MapReduce的大规模基因序列比对算法 371

11.3.1 基因序列比对算法简介 371

11.3.2 并行化BLAST算法的设计与实现 373

11.4 基于MapReduce的大规模城市路径规划算法 379

11.4.1 问题背景和要求 379

11.4.2 数据输入 380

11.4.3 程序设计要求 384

11.4.4 算法设计总体框架和处理过程 385

11.4.5 并行化算法的设计与实现 386

11.5 基于MapReduce的大规模重复文档检测算法 396

11.5.1 重复文档检测问题描述 396

11.5.2 重复文档检测方法和算法设计 397

11.5.3 重复文档检测并行化算法设计实现 401

11.6 基于内容的并行化图像检索算法与引擎 404

11.6.1 基于内容的图像检索问题概述 404

11.6.2 图像检索方法和算法设计思路 405

11.6.3 并行化图像检索算法实现 407

11.7 基于MapReduce的大规模微博传播分析 412

11.7.1 微博分析问题背景与并行化处理过程 413

11.7.2 并行化微博数据获取算法的设计实现 414

11.7.3 并行化微博数据分析算法的设计实现 416

11.8 基于关联规则挖掘的图书推荐算法 422

11.8.1 图书推荐和关联规则挖掘简介 422

11.8.2 图书频繁项集挖掘算法设计与数据获取 423

11.8.3 图书关联规则挖掘并行化算法实现 425

11.9 基于Hadoop的城市智能交通综合应用案例 432

11.9.1 应用案例概述 432

11.9.2 案例一:交通事件检测 433

11.9.3 案例二:交通流统计分析功能 435

11.9.4 案例三:道路旅行时间分析 435

11.9.5 案例四:HBase实时查询 436

11.9.6 案例五:HBase Endpoint快速统计 437

11.9.7 案例六:利用Hive高速统计 439

附 录 442

附录A OpenMP并行程序设计简介 442

附录B MPI并行程序设计简介 448

附录C 英特尔Apache Hadoop系统安装手册 457

参考文献 486