前言

本书以Hadoop和Spark为核心,阐述了基于这两种通用大数据处理平台的应用开发技术。

在Hadoop生态圈中,从HDFS初识分布式存储系统;以Map Reduce详解分步式计算的步骤;利用HBase分析适合非结构化数据存储的分布式数据库;利用Hive分析将SQL查询转化为分布式计算的过程;并结合项目案例“音乐排行榜”练习Hadoop核心技能点的运用;同时,介绍了几种离线处理系统中常用的辅助工具。

在Spark生态圈中,从Scala开始介绍多范式编程;并从Spark Core、Spark SQL、Spark Streaming三个方面来分析对比Hadoop生态圈中的分布式计算、Hive、流式计算的可替换方案和它们各自的优势。

技能训练

掌握Hadoop运行环境的部署。

掌握大数据文件在HDFS中的存储。

掌握Map Reduce编程模型以及Map Reduce应用开发方法。

掌握YARN的运行原理。

掌握HBase数据库的操作方法。

掌握Hive数据仓库的操作方法。

掌握常用离线处理辅助系统Sqoop和Azkaban的用法。

掌握Scala基本编程方法。

掌握Spark RDD创建与操作。

掌握Data Frame编程方法。

掌握Spark Streaming对Socket、HDFS数据进行流式处理的方法。

了解Spark Streaming与Flume、Kafka的整合。

设计思路

本书共12章,内容包括Hadoop初体验、Hadoop分布式文件系统、Hadoop分布式计算框架、Hadoop新特性、Hadoop分布式数据库、Hadoop综合实战——音乐排行榜、数据仓库Hive、大数据离线处理辅助系统、Spark基础、Spark Core、Spark SQL和Spark Streaming。具体内容安排如下。

第1章是对Hadoop的总体概述,介绍大数据基本概念、Hadoop生态圈、Hadoop与大数据的关系以及Hadoop安装部署的详细步骤。

第2章是对HDFS的介绍,主要包括HDFS的体系结构、Shell操作以及通过Java API实现访问。

第3章是对Map Reduce分布式计算框架的讲解,包括Map Reduce的编程模型、编写和运行Map Reduce程序。

第4章是对Hadoop新的资源调度框架YARN及Hadoop新特性的讲解,以及如何实现Hadoop高可用集群。

第5章是对HBase数据库的讲解,介绍HBase的安装及其使用方法。

第6章通过案例“音乐排行榜”的实现,对前面各章的技能点做一个阶段回顾与总结,介绍如何通过HDFS、Map Reduce与HBase的结合使用完成Hadoop离线批处理应用开发。

第7章是对Hive的讲解,介绍如何使用类似于SQL查询的方式来执行Map Reduce计算。

第8章介绍Sqoop、Azkaban这两种在开发离线处理系统时常用的辅助工具。

第9章是对Spark的基本介绍,包括Spark的安装与运行、Spark的开发语言Scala。

第10章是对Spark的核心RDD的详解,介绍Spark Core的编程模型以及Spark应用程序的开发。

第11章是对Spark SQL的详解,包括常用的SQL on Hadoop框架、Spark SQL的编程方法以及Spark SQL对多种外部数据源的操作。

第12章是对Spark Streaming的详解,包括Spark Streaming核心概念、常用的流处理系统,以及使用Spark Streaming进行流处理应用的开发。

章节导读

技能目标:本章要达成的学习目标,可以作为检验学习效果的标准。

本章任务:本章要完成的学习内容及要求,通过任务描述引导读者思考,进而引导读者全面了解章节内容。

案例代码:通过代码让读者掌握如何应用本章讲解的技能点。

本章总结:本章内容的概括和总结。

本章练习:针对本章学习内容的补充性练习,用于加强对本章知识的理解和运用。

本书由课工场大数据开发教研团队编写,参与编写的还有丁科、吴刚山、鄢长青、张琪等院校老师。由于编者水平有限,书中不妥或错误之处在所难免,殷切希望广大读者批评指正!

编者

2017年12月