本书以Hadoop 3.3.0为核心,涵盖Hadoop生态系统的常用组件,主要介绍各组件的架构原理、Shell命令、常用API及编程等,并配有较多例题。全书共7章,内容包含Hadoop概述、Hadoop伪分布式安装、Hadoop分布式文件系统HDFS、分布式计算框架MapReduce、分布式数据库HBase、数据仓库Hive和内存计算框架Spark,第2~7章还设计了相关实验。
本书可以作为高等院校大数据、计算机、应用统计等相关专业的教材,也可作为Hadoop爱好者的入门教程或自学参考用书。
本书配有电子课件,欢迎选用本书作教材的教师登录www.cmpedu.com注册后下载,或加微信13910750469索取。
大数据时代的来临,带来了信息技术的巨大变革,并深刻影响着人们生活和社会生产的方方面面。Hadoop是一个开源的、可运行于大规模集群上的分布式存储和计算的软件框架,用户可以在不了解分布式底层细节的情况下开发分布式程序,并能充分利用集群的威力进行高速运算和存储。大数据的核心技术就是Hadoop及其生态系统的常用组件,包括HBase、Hive和Spark等。
目前市面上虽然已有较多关于Hadoop的书籍,但是这些书籍大多是基于Hadoop 2.X,而且偏重理论讲述,内容较多,学习难度较大,容易打击初学者的学习积极性,让其难以入门。本书以Hadoop 3.3.0为核心,涵盖Hadoop生态系统的常用组件,内容新颖,可操作性强,讲解通俗易懂,能使读者在较短的时间内掌握Hadoop大数据技术。
本书特色
1.容易入门
相对于其他书籍,本书增加Linux基础知识和Linux基本命令,不熟悉Linux的读者也容易上手;对Hadoop及其他相关软件的安装和使用过程进行了详细描述,帮助读者渡过安装和使用相关软件的难关。
2.版本新
随着时间的推移,Hadoop及其生态系统的常用组件也在不断发展,版本不断更新,本书采用的软件版本较新,如Hadoop 3.3.0、HBase 2.2.2、Hive 3.1.2、Spark 3.2.1等。
3.较多的应用实例
本书提供了较多的应用实例,以便帮助读者理论联系实际,快速地掌握Hadoop及其生态系统的常用组件的编程技术。
4.图文并茂
“一图胜千言”,全书共有两百多幅插图,用于展示语言难以描述的内容。
适合阅读本书的读者
(1)高等院校、中职学校的师生。
(2)Hadoop大数据技术初学者。
(3)Hadoop大数据应用开发人员。
致谢
在本书的编写过程中,得到了厦门大学林子雨副教授的大力帮助,还得到了广东时汇信息科技有限公司和广东泰迪智能科技股份有限公司的帮助,在此一并表示衷心的感谢。非常感谢机械工业出版社吉玲编辑,她专业细致的工作方式,给编者留下了深刻的印象。
前言由于编者水平有限,编写时间仓促,书中的错误和疏漏在所难免,恳请广大读者提出宝贵意见和建议。联系邮箱:lkf547@163.com。
编者于广东工业大学
前言
第1章Hadoop概述
1.1大数据简介
1.2Hadoop简介
1.3Hadoop特性
1.4Hadoop核心组件
1.4.1HDFS
1.4.2MapReduce
1.4.3YARN
1.5Hadoop生态系统
1.5.1HBase
1.5.2Hive
1.5.3Pig
1.5.4Spark
1.5.5ZooKeeper
1.5.6Sqoop
1.5.7Flume
1.5.8Mahout
1.5.9Ambari
1.6本章小结
习题
第2章Hadoop伪分布式安装
2.1Linux操作系统
2.1.1概述
2.1.2Linux的组成
2.1.3Linux的内核版本与发行版本
2.1.4Linux基本命令
2.2CentOS的安装
2.2.1安装VMware Workstation
2.2.2在VMware上安装CentOS 7
2.2.3配置CentOS 7
2.3Hadoop伪分布式安装与配置
2.3.1安装WinSCP
2.3.2安装JDK
2.3.3安装Hadoop
2.4本章小结
习题
实验Hadoop伪分布式安装与配置
第3章Hadoop分布式文件系统HDFS
3.1HDFS的架构和原理
3.1.1计算机集群结构
3.1.2HDFS的假设前提和设计目标
3.1.3HDFS的相关概念
3.1.4HDFS体系结构
3.1.5HDFS存储原理
3.2HDFS Shell
3.3HDFS Java API
3.3.1搭建Linux操作系统下的Eclipse开发环境
3.3.2HDFS Java API常用的类
3.3.3HDFS Java API 编程
3.4本章小结
习题
实验HDFS基本命令的使用和HDFS的Java编程
第4章分布式计算框架MapReduce
4.1认识MapReduce
4.1.1分布式并行编程
4.1.2MapReduce核心思想
4.1.3MapReduce运行环境
4.1.4Hadoop内置数据类型
4.2MapReduce工作流程
4.2.1MapReduce工作流程概述
4.2.2Shuffle过程分析
4.3MapReduce入门示例:WordCount
4.3.1WordCount程序任务
4.3.2准备被统计的文件
4.3.3WordCount执行过程分析
4.3.4WordCount编程实践
4.4MapReduce应用实例
4.4.1求平均值
4.4.2简单查询功能的实现
4.5本章小结
习题
实验简单排序的实现
第5章分布式数据库HBase
5.1概述
5.1.1BigTable简介
5.1.2HBase简介
5.1.3HBase具有的特点
5.2HBase数据模型
5.2.1数据模型概述
5.2.2数据模型的相关概念
5.3HBase系统架构
5.4HBase伪分布式安装
5.4.1安装并配置环境变量
5.4.2配置HBase参数
5.4.3验证HBase
5.5HBase Shell
5.5.1HBase Shell常用命令
5.5.2HBase Shell应用实例
5.6HBase Java API
5.6.1HBase Java API 简介
5.6.2HBase Java API 编程
5.7本章小结
习题
实验HBase编程实践
第6章数据仓库Hive
6.1概述
6.1.1数据仓库简介
6.1.2Hive简介
6.1.3Hive与关系型数据库的区别
6.1.4Hive系统架构
6.2Hive伪分布式安装
6.2.1MySQL的安装和配置
6.2.2Hive的安装和配置
6.3Hive编程基础
6.3.1Hive的数据类型
6.3.2数据库相关操作
6.3.3表相关操作
6.3.4表中数据的加载
6.3.5HiveQL基本查询
6.3.6Hive函数
6.4Hive编程实例
6.4.1雇员表统计
6.4.2词频统计
6.5本章小结
习题
实验Hive的编程实践
第7章内存计算框架Spark
7.1Spark基础知识
7.1.1Spark简介
7.1.2Spark生态系统
7.1.3Spark运行架构
7.2Scala基础知识
7.2.1Scala简介
7.2.2Scala安装
7.2.3Scala编程
7.3Spark伪分布式安装
7.3.1Spark的安装模式
7.3.2Spark的安装
7.4RDD编程基础
7.4.1Spark Shell的启动和退出
7.4.2RDD创建
7.4.3常用的RDD操作
7.4.4RDD编程实例
7.5IDEA的安装和使用
7.5.1IDEA的安装
7.5.2IDEA的使用
7.5.3独立应用程序实例
7.6本章小结
习题
实验Spark Shell交互式编程
参考文献