《大数据基础与应用》共分为12章,第1章介绍了大数据产生的背景、大数据的结构与特征、大数据相关概念、大数据可视化、大数据相关工具与发展前景。第2~9章为基础知识部分,介绍了大数据的生态系统全貌,重点对计算平台Hadoop、分布式文件系统HDFS、计算框架MapReduce、开源数据库HBase、典型工具NoSQL、集群计算Spark、流计算Storm和分布式协调系统Zookeeper等相关技术进行了详细介绍,通过实例使读者具备解决实际问题的能力。第10~12章为典型应用案例部分,介绍了大数据分析应用系统的开发过程,涵盖了数据采集、数据分析、数据转换和结果显示的整个交互式大数据处理和分析流程。
《大数据基础与应用》内容丰富、条理清晰、示例指导性强,读者可以通过章后的习题对所学内容作进一步巩固,熟练掌握大数据基本原理、工程应用场景及实验分析技巧。
《大数据基础与应用》适合作为大中专院校数据科学与大数据专业、计算机类专业的教材,也可以作为读者自学或者科研技术人员的参考书。
配套资源:电子课件
本书特色:
本书按照读者学习的一般规律由浅入深、循序渐进,并配以大量的图片说明和实例讲解。
读者可以通过章后的习题对所学内容作进一步巩固,熟练掌握大数据基本原理、工程应用场景及实验分析技巧。
三个典型应用案例部分涵盖了数据采集、数据分析、数据转换和结果显示的整个交互式大数据处理和分析流程。
近年来,大数据浪潮汹涌来袭,与互联网一样,这不仅是信息技术领域的革命,更是在全球范围加速企业创新、引领社会变革的利器。现代管理学之父德鲁克说过,预测未来最好的方法,就是去创造未来。而大数据战略正是当下领航全球的先机。大数据指一般的软件工具难以捕捉、管理和分析的大容量数据。大数据之大,并不仅在于容量之大,更在于其通过对海量数据的交换、整合和分析,发现新的知识、创造新的价值,带来大知识大科技大利润和大发展。
数据科学与大数据技术专业,简称数科或大数据专业,旨在培养具有大数据思维、运用大数据思维研究及分析的高层次大数据人才,掌握计算机理论和大数据处理技术,从数据管理、系统开发、海量数据分析与挖掘三个层面系统地培养学生掌握大数据应用中的各种典型问题的解决办法,提升学生解决实际问题的能力。
基本内容
本书共分为12章,各章主要内容如下。
第1章主要对大数据产生的背景、大数据的结构与特征、大数据相关概念、大数据可视化、大数据处理相关工具与发展前景进行了介绍。通过第1章的学习,读者能够初步掌握大数据的基本知识,熟悉大数据处理与分析的操作环境及可视化方法,为后面的进一步学习打下坚实的基础。
第2章主要介绍了分布式计算平台Hadoop及其基础知识、Hadoop发展史、Hadoop体系结构等,让读者对Hadoop有一个简单的认识,了解如何在Hadoop上开发和运行处理海量数据的应用。
第3章首先介绍分布式文件系统的基本概念、结构和设计需求,然后介绍HDFS,详细阐述它的重要概念、体系结构、存储原理和读写过程,最后介绍了一些HDFS编程实践方面的知识。
第4章着重介绍了MapReduce分而治之,迭代汇总的处理海量数据的并行编程模型和计算框架,让读者了解MapReduce的数据类型与格式、序列化、数据分片、MapReduce的架构与接口类,通过单词计数程序将上述知识点串联并阐述MapReduce的思想。
第5章详细地介绍了HBase开源数据库,HBase的安装与配置、常用API、HBase架构及实现原理等,使读者快速对HBase有一个全方面的了解。
第6章着重介绍了NoSQL的基础,一致性策略、数据分区与放置策略、数据复制与容错、数据缓存等,结合NoSQL典型应用工具,结合实例简明扼要地叙述了NoSQL的基本应用。
第7章阐述了Spark生态系统全貌,包含SparkSQL、Spark Streaming、GraphX、MLlib等,了解Spark的功能、特点以及场景应用。通过对Spark的安装部署,基本操作和运行模式,并通过编程实例来加深了解运用Spark的相关知识。
第8章首先介绍了Storm流计算的基本概念和需求,阐述了流计算的处理流程、应用场景、Storm的设计思想和架构设计,最后介绍了Spark Streaming及其应用实例。
第9章介绍了分布式协调系统Zookeeper概念及其主要特征和数据模型、Zookeeper的安装和配置、Zookeeper API的简单使用、Zookeeper shell的操作,最后介绍了一个选举案例让读者更深入地了解Zookeeper的作用及应用。
第10章通过销售数据分析系统的应用案例,介绍了大数据分析应用系统的完整开发过程,涵盖了数据采集、数据分析、数据转换和结果显示的整个流程。
第11章介绍了在Hadoop平台上进行交互式数据处理的方法,然后介绍了利用Hive 基本工具进行实时交互式大数据的处理和分析。
第12章介绍了协同推荐算法的基本概念和几种典型分类。利用Spark MLlib实现了协同过滤推荐算法及协同交互过程。
本书特点
本书编者长期给本科生和研究生讲授数据库、数据挖掘、物联网和云计算等与大数据相关的课程,有着丰富的教学实践和科研经验。本书内容条理清晰,并按照读者学习的一般规律由浅入深、循序渐进,并配以大量的图片说明和实例讲解,能够使读者快速地了解和掌握大数据原理及应用案例。
读者对象
● 大数据基础知识的初学者。
● 具有一定大数据基础并希望更深入了解、掌握大数据原理与应用的中级读者。
本书适合作为大中专院校数据科学与大数据专业、计算机类专业的教材,也可作为从事大数据挖掘等工作的科研或者工程技术人员的参考书。
本书由赵国生、王健和宋一兵主编。哈尔滨师范大学赵国生主要负责第1~8章,哈尔滨理工大学王健负责第9、10章,宋一兵负责第11、12章。参加本书编写工作的还有管殿柱、王献红、李文秋,学生曲晓峰、张慧、蒋欣洋、陈炫慧、贺敬、张志敏等为本书做了大量辅助性工作,在此一并感谢。
本书得到了以下项目的支持:国家自然科学基金项目可生存系统的自主认知模式研究(61202458)、国家自然科学基金项目基于认知循环的任务关键系统可生存性自主增长模型与方法(61403109)、高等学校博士点基金项目(20112303120007)、哈尔滨市科技创新人才研究专项(2016RAQXJ036)和黑龙江省自然科学基金(F2017021)。
虽然编者在编写本书的过程中力求叙述准确、完善,但由于水平有限,书中欠妥之处在所难免,希望读者将对本书的意见和建议告诉我们。
前言
第1章初识大数据
1.1大数据产生的背景
1.2大数据的结构与特征
1.2.1大数据的结构
1.2.2大数据的特征
1.3大数据相关概念
1.3.1大数据关键技术
1.3.2数据类型与数据管理
1.3.3数据仓库
1.3.4数据挖掘
1.4大数据可视化
1.4.1什么是数据可视化
1.4.2数据可视化的工具与方法
1.4.3数据可视化的建模
1.4.4数据可视化分类
1.5大数据相关工具
1.5.1Hadoop
1.5.2R语言
1.5.3Python语言
1.5.4RapidMiner
1.5.5Tableau
1.6大数据时代的新机遇
1.6.1数据价值
1.6.2应用价值
1.6.3发展前景
1.7本章小结
1.8习题
第2章大数据处理架构Hadoop
2.1Hadoop简介
2.2Hadoop发展史及特点
2.3Hadoop体系结构
2.3.1HDFS体系结构
2.3.2MapReduce体系结构
2.4配置Linux环境
2.4.1安装VMware12虚拟机
2.4.2部署CentOS 64位操作系统
2.4.3配置网络
2.4.4Linux终端
2.5Hadoop环境搭建
2.5.1JDK安装和测试
2.5.2Hadoop安装和配置
2.5.3SSH免密码配置
2.6Hadoop关键组件
2.6.1HDFS
2.6.2HBase
2.6.3MapReduce
2.6.4Hive
2.6.5Pig
2.6.6Mahout
2.6.7ZooKeeper
2.6.8Flume
2.6.9Sqoop
2.6.10Ambari
2.7本章小结
2.8习题
第3章分布式文件系统HDFS
3.1HDFS概念
3.1.1HDFS简介
3.1.2HDFS相关概念
3.2HDFS体系结构
3.3HDFS文件存储机制
3.4HDFS的数据读写过程
3.4.1读数据的过程
3.4.2写数据的过程
3.5HDFS应用实践
3.5.1HDFS常用命令
3.5.2HDFS的Web界面
3.5.3HDFS常用Java API及应用实例
3.6本章小结
3.7习题
第4章计算系统MapReduce
4.1MapReduce概述
4.1.1MapReduce简介
4.1.2MapReduce 数据类型与格式
4.1.3数据类型Writable接口
4.1.4Hadoop序列化与反序列化机制
4.2MapReduce架构
4.2.1数据分片
4.2.2MapReduce的集群行为
4.2.3MapReduce作业执行过程
4.3MapReduce接口类
4.3.1MapReduce输入的处理类
4.3.2MapReduce输出的处理类
4.4MapReduce应用案例单词计数
程序
4.4.1WordCount代码分析
4.4.2WordCount处理过程
4.5本章小结
4.6习题
第5章分布式数据库HBase
5.1初识HBase
5.1.1HBase的来源
5.1.2HBase的特点
5.1.3HBase的系统架构
5.2HBase安装与配置
5.2.1HBase运行模式分类
5.2.2Hbase的安装
5.2.3HBase基本API实例
5.2.4HBase Shell工具使用
5.3Hbase的存储结构
5.3.1存储结构中重要模块
5.3.2HBase物理存储和逻辑视图
5.3.3数据坐标
5.4HBase的实现原理
5.4.1Hbase的读写流程
5.4.2表和Region
5.4.3Region的定位
5.5HBase表结构设计
5.5.1列族定义
5.5.2表设计原则
5.5.3Rowkey设计
5.6本章小结
5.7习题
第6章NoSQL数据库
6.1NoSQL简介
6.1.1NoSQL的含义
6.1.2NoSQL的产生
6.1.3NoSQL的特点
6.2NoSQL技术基础
6.2.1一致性策略
6.2.2数据分区与放置策略
6.2.3数据复制与容错技术
6.2.4数据的缓存技术
6.3NoSQL的类型
6.3.1键值存储
6.3.2列存储
6.3.3面向文档存储
6.3.4图形存储
6.4NoSQL典型工具
6.4.1Redis
6.4.2CouchDB
6.5本章小结
6.6习题
第7章集群计算Spark
7.1深入理解Spark
7.1.1Spark简介
7.1.2Spark与Hadoop差异
7.1.3Spark的适用场景
7.1.4Spark成功案例
7.2Spark的安装与配置
7.2.1安装模式
7.2.2Spark的安装
7.2.3启动并验证Spark
7.3Spark程序的运行模式
7.3.1Spark on Yarn-cluster
7.3.2Spark on Yarn-client
7.4Spark编程实践
7.4.1启动Spark Shell
7.4.2Spark RDD基本操作
7.4.3Spark应用程序
7.5Spark的三个典型应用案例
7.5.1词频数统计
7.5.2人口的平均年龄
7.5.3搜索频率最高的K个关键词
7.6本章小结
7.7习题
第8章流计算Storm
8.1流计算概述
8.1.1流计算的概念
8.1.2流计算与Hadoop
8.1.3流计算框架
8.2开源流计算框架Storm
8.2.1Storm简介
8.2.2Storm的特点
8.2.3Storm的设计思想
8.2.4Storm的框架设计
8.3实时计算处理流程
8.3.1数据实时采集和计算
8.3.2数据查询服务
8.4典型的流引擎Spark Streaming
8.4.1Spark Streaming
8.4.2Storm和Spark Streaming框架
对比
8.5流计算的应用案例电商
实时销售额的监控
8.5.1技术架构
8.5.2技术实现
8.5.3项目预案
8.6本章小结
8.7习题
第9章分布式协调系统ZooKeeper
9.1ZooKeeper概述
9.1.1ZooKeeper简介
9.1.2ZooKeeper数据模型
9.1.3ZooKeeper特征
9.1.4ZooKeeper工作原理
9.2ZooKeeper的安装和配置
9.2.1安装ZooKeeper
9.2.2配置ZooKeeper
9.2.3运行ZooKeeper
9.3ZooKeeper的简单操作及步骤
9.4ZooKeeper Shell操作
9.4.1ZooKeeper服务命令
9.4.2ZooKeeper客户端命令
9.5ZooKeeper API操作
9.6ZooKeeper应用案例Master
选举
9.6.1使用场景及结构
9.6.2编码实现
9.7本章小结
9.8习题
第10章销售数据分析系统
10.1数据采集
10.1.1在Windows下安装JDK
10.1.2在Windows下安装Eclipse
10.1.3将WebCollector项目导入
Eclipse
10.1.4在Windows下安装MySQL
10.1.5连接JDBC
10.1.6运行爬虫程序
10.2在HBase集群上准备数据
10.2.1将数据导入到MySQL
10.2.2将MySQL表中的数据导入到HBase
表中
10.3安装Phoenix中间件
10.3.1Phoenix架构
10.3.2解压安装Phoenix
10.3.3Phoenix环境配置
10.3.4使用Phoenix
10.4基于Web的前端开发
10.4.1将Web前端项目导入Eclipse
10.4.2安装Tomcat
10.4.3在Eclipse中配置Tomcat
10.4.4在Web浏览器中查看执行
结果
10.5本章小结
10.6习题
第11章交互式数据处理
11.1数据预处理
11.1.1查看数据
11.1.2数据扩展
11.1.3数据过滤
11.1.4数据上传
11.2创建数据仓库
11.2.1创建数据仓库的基本命令
11.2.2创建Hive区分表
11.3数据分析
11.3.1基本统计
11.3.2用户行为分析
11.3.3实时数据
11.4本章小结
11.5习题
第12章协同过滤推荐系统
12.1推荐算法概述
12.1.1基于人口统计学的推荐
12.1.2基于内容的推荐
12.1.3基于协同过滤的推荐
12.2协同过滤推荐算法分析
12.2.1基于用户的协同过滤推荐
12.2.2基于物品的协同过滤推荐
12.3Spark MLlib推荐算法应用
12.3.1ALS算法原理
12.3.2ALS的应用设计
12.4本章小结
12.5习题
附录课后习题答案
参考文献