关于我们
书单推荐
新书推荐
|
大数据技术
本书从大数据分析角度入手, 首先介绍了不同的大数据处理模式与代表性的处理系统, 其次对大数据分析所应用的数据挖掘、 机器学习的理论工具给予了介绍, 最后详细介绍了典型的大数据技术IBM InfoSphere BigInsights。
本书由3篇共25章组成。 第1篇大数据系统基础, 由第1章概述和第2章大数据基础组成。 第2篇大数据分析理论基础, 由第3章到第10章组成, 主要介绍了一些概率与统计方面的基础知识、 数据挖掘的基本技术以及机器学习的常用概率化工具。 第3篇大数据技术, 由第11章到第25章组成, 全面介绍了IBM InfoSphere BigInsights各个组件和基本应用。
本书可作为高等学校大数据专业方向以及计算机科学技术、 软件工程、 物联网工程等信息科学技术类专业的本科教材, 也可作为相关专业的技术人员的参考资料。
信息时代, 大量的数据以前所未有的速度源源不断地产生。 这是由于物联网、 云计算以及智能设备的普及等方面信息技术的发展所致, 包括互联网、 分布式系统等在内的各种信息系统以及运行在各种信息系统之上的多种应用系统, 其所采集、 产生、 处理和存储的数据全方位地服务于社会、 经济等各个层面。 这些数据以其量级巨大、 生成速度极快并且种类繁多的特点造就了现今人们所说的“大数据”。
“大数据”概念不是突然出现的, 而是信息技术发展的结果, 大数据是新信息技术的宝藏。
大数据中隐藏着巨大的机会和价值, 将给许多领域带来变革性的发展, 因此大数据研究领域吸引了产业界、 政府和学术界的广泛关注。 目前, 人们已意识到, 数据分析正日益成为信息经济的关键因素, 发现数据中新的内涵, 并提供个性化服务才能使企业处于经济竞争的有利地位。
相较于传统的数据, 人们将大数据的特征总结为5个“V”, 即体量大(Volume)、 速度快(Velocity)、 模态多(Variety)、 难辨识(Veracity)和价值密度低(Value)。 这五个特征都对信息技术带来了巨大挑战, 同时也产生了应对这些挑战的大数据系统, 其中以Apache Hadoop为典型代表的技术架构, 以及数据挖掘和机器学习等人工智能技术在大数据方面的应用正在逐渐克服这些挑战。 为了适应大数据发展, 深入研究大数据系统及其应用, 我们结合多年的科学研究成果编写了本书。
从系统构成的角度来看, 可以将大数据系统分解为三个层次: 基础设施层、 计算层和应用层, 这种分层结构对于大数据系统的分布式演进具有非常重要的意义。
1.本书的组成及各篇章内容简介
本书由3篇共25章组成。 本书从大数据概念入手, 较为详细地介绍了大数据系统的基本架构和大数据的层次, 介绍了大数据分析所要应用的理论工具, 以IBM InfoSphere BigInsights为主线介绍基于Apache Hadoop各生态系统的基本应用。
(1) 第1篇: 大数据系统基础。
本篇由第1章概述和第2章大数据基础组成。 第1章介绍了大数据特性, 给出了大数据的几种定义并深入讨论了大数据计算系统带来的挑战, 以及大数据挖掘在多个领域的价值。 第2章介绍了大数据的基础架构和层次, 大数据风险涉及的数据安全、 数据隐私、 安全成本等问题, 以及大数据的一些应用案例。
(2) 第2篇: 大数据分析理论基础。
本篇由第3章到第10章组成, 主要介绍了一些概率与统计方面的基础知识、 数据挖掘的基本技术以及机器学习的常用概率化工具。
第3章介绍了概率方面的基础知识, 也介绍了随机变量的变换、 蒙特卡洛逼近和信息论的基础知识。
第4章着重介绍了数据挖掘的基本概念、 数据挖掘的对象以及数据挖掘系统的体系结构、 数据挖掘的功能与方法、 数据挖掘的过程, 还介绍了决策树、 分类挖掘方法中的神经网络和统
计等方法。
第5章主要介绍了关联挖掘与聚类的基本概念与基本方法, 包括关联挖掘的基本方法、 基于划分的聚类的kmeans方法、 基于层次的聚类的基本思想和算法。
第6章介绍了狄利克雷多项式模型, 其中包括似然度、 先验分布、 后验分布以及后验预测分布; 还介绍了朴素贝叶斯分类器模型, 包括模型拟合和预测模型的应用等。
第7章介绍了机器学习中的一个非常重要的模型——高斯模型。 该模型是机器学习中的基本模型; 同时介绍了高斯判决分析, 主要包括二次判别分析、 线性判别分析(LDA)、 最大似然估计(MLE)的判决分析以及防止过拟合的策略等知识。 这些知识在机器学习中应用非常广泛, 如在分类和聚类中都得到了广泛应用。
第8章主要介绍了线性回归中的规范模型、 最大似然估计、 鲁棒线性回归、 岭回归和贝叶斯线性回归。 线性回归是统计学和(监督)机器学习的有力工具。 当以核函数或其他形式的基函数展开式进行扩展时, 它还可以对非线性关系进行建模。
第9章介绍了逻辑回归模型的拟合, 其中包括最大似然估计(MLE)、 最速下降算法、 牛顿法、 迭代加权最小二乘法(IRLS)、 拟牛顿法(变尺度法), 还介绍了贝叶斯逻辑回归、 在线学习及其随机优化方面的常用在线学习算法。
第10章讨论了广义线性模型, 常见的高斯、 伯努利、 均匀、 伽马等分布大多被称为指数函数簇的广义分布类, 可以轻易地应用任一指数函数成员作为类的条件密度来建立生成分类器; 介绍了主成分分析与奇异值分解, 这对高维数据的降维与低维重构是非常重要的。
(3) 第3篇: 大数据技术。
本篇是本书需要重点学习的部分, 由第11章到第25章组成。 本篇以IBM InfoSphere BigInsights为主线, 全面介绍Hadoop的主要组件。 这些组件包括分布式文件系统(HDFS), Hadoop的编程模型MapReduce, 大数据查询语言JAQL, 大数据仓库Hive与HBase, MapReduce编码的更高级别的编程环境Pig, Hadoop与结构化数据存储间传送批量数据的工具Sqoop, 旨在收集、 汇总与将来自不同源的日志数据移动到中央位置的一种分布式系统Flume, 管理Hadoop工作流的工具Oozie, 用于管理集群同步的工具ZooKeeper, 以及Hadoop的机器学习组件Mahout。
第11章详细地介绍了Hadoop的基础知识, 还介绍了Hadoop的安装与部署。 由于本书是在IBM InfoSphere BigInsights环境中学习大数据技术的, 因此其需要在Linux环境下安装、 部署和使用。 通过对Hadoop基础知识的学习与掌握, 为进一步学习与深入应用大数据技术奠定良好的基础。
第12章介绍了大数据系统中的一个主要系统——InfoSphere BigInsights, 它是基于Hadoop开源代码而开发的, 可以帮助企业和机构理解与分析大量的非结构化信息, 可以在常用的低成本硬件上并行运行。
第13章介绍了Hadoop HDFS的架构、 Hadoop的文件块、 常用的HDFS文件命令基本操作。
第14章介绍了NoSQL的概念与特点, 还介绍了MongoDB及其在Windows系统上的安装和简单的操作与命令。 NoSQL是消除了标准化的SQL的应用, NoSQL数据库和管理系统无关, 是无模式的数据库, 而且它不是基于单一模型的, 每个数据库根据其目标功能不同而采用不同模型。 MongoDB是一个跨平台、 面向文档的数据库, 具有高性能、 高可用性和简单的可伸缩性。
第15章介绍了面向列的HBase数据库, 还介绍了具有高可扩展性的Cassandra的数据库及其安装与基本操作。 Cassandra提供了一个Cassandra查询语言Shell(cqlsh), 允许用户与它进行沟通。 应用cqlsh, 可以进行定义模式、 插入数据, 并且执行查询。
第16章介绍了MapReduce的工作原理及其在终端和Web控制台上的运行。 同时较为详细地介绍了MapReduce的编程原理, 给出了一个电影推荐数据的MapReduce处理。 MapReduce是一个编程模型和相关实现, 用于集群上以并行、 分布式算法处理和生成的大型数据集。 一般来说, MapReduce程序处理三个阶段的数据: map、 shuffle和reduce。
第17章介绍了JAQL和JAQL访问JSON的数组和记录。 JAQL是JavaScript Object Notation或JSON查询语言。 JAQL为用户提供简单的声明性的语法来处理大型结构化和非传统的数据, 可以使用JAQL在分布式文件系统中执行诸如选择、 过滤、 联合和分组数据等操作。 另外, JAQL还允许在表达式中编写和应用用户定义的函数。 对于并行功能, JAQL重新编写了高级查询以便进行低层MapReduce作业的操作。
第18章介绍了Hive架构与工作流、 数据模型、 构件及数据文件格式。 Hive是Hadoop数据仓库, Hive支持类似于SQL的声明性语言HiveQL所表达的查询。 这些语言被编译进用Hadoop执行的MapReduce作业。 Hive数据模型包含数据库(Databases)、 表(Tables)、 分区(Partitions)和储桶或聚类(Buckets或Clusters)这些组件。 Hive数据文件格式主要有RCFile和ORCFile, 这些格式可以有效地提升Hadoop中数据存储和访问关系数据的性能。
第19章介绍了Pig编程语言和Pig基本应用。 Pig是一种高级编程语言, 用于分析大型数据集。 Pig由Pig Latin编程语言和运行环境两个组件构成。 Pig有两个执行模式: 本地模式和MapReduce模式。 在本地模式中, Pig运行在单个的JVM上并使用本地文件系统, 这个模式仅适合于用Pig分析小数据集; 在MapReduce模式下, 将Pig Latin编写的查询转换为MapReduce作业, 在Hadoop集群上运行。
第20章介绍了BigSheets的界面, 给出了7个练习, 使读者能够熟练掌握BigSheets的基本应用。 BigSheets使用了类似电子表格的界面, 可以建模、 过滤、 合并和统计从多个源头采集的数据。
第21章主要介绍了Big SQL框架、 Big SQL的基本应用、 Big SQL命令行界面(JSqsh)的使用, 使用Eclipse处理Big SQL, 创建项目和SQL脚本文件, 创建并执行查询, 查询Big SQL数据与从BigSheets导出的数据以及处理非传统数据。 Big SQL表可以包含复杂的数据类型, 如结构和数组, 此外, 还有几个基础存储支持机制, 包括分隔文件、 序列文件格式的Hive表、 RCFile格式等。
第22章介绍了Hadoop中的Sqoop, 它主要用于从Teradata、 Oracle等数据库中提取结构化数据。 Sqoop旨在支持从结构化数据存储系统向HDFS批量导入数据。 Sqoop是基于连接器架构的, 该架构支持插件以此提供与新的外部系统连接, 数据仓库连接器、 文档系统连接器和关系数据库管理系统(RDBMS)连接器分别从数据仓库、 文档系统和RDBMS中导入/导出数据。
第23章介绍了Flume的流与源、 Flume的基本架构与代理。 Flume是一个工具/服务器/数据采集机制, 可用于收集汇总并将大量的流数据从各种源传输到集中式的数据存储区。 Flume具有不同级别的可靠性, 即使在多个节点发生故障的情况下也可保证交付。 Flume在源与接收器间传送数据。 Flume接收器包括HDFS和HBase。 Flume也可以用于传输事件数据, 包括网络流量数据、 社交媒体网站产生的数据和电子邮件信息等。
第24章首先简要地介绍了R语言的特性以及Big R提供的功能, 其次介绍了R语言的一些基础知识, 给出了一些编程示例。 R语言是功能强大的可视化图形工具, 可用于业务分析、 科学研究、 商业智能、 软件开发和统计报告等多种专业领域。
第25章简要地介绍了Oozie、 ZooKeeper和Mahout, 给出了Mahout的几个示例, 可以采用Mahout实现机器学习的常规应用。 Oozie是Hadoop的工作流调度程序, 它包含工作流引擎和协调器引擎两个部分。 Oozie为不同类型的操作提供了支持。 ZooKeeper是一个开源的Apache项目, 它提供了集中化的基础设施和服务, 能使跨集群进行同步。 ZooKeeper维护大集群环境中所需的公共对象。 Mahout是用于生成分布式或可扩展机器学习算法的免费实现, 主要集中在协同过滤、 聚类和分类领域。 其中许多实现使用了Apache Hadoop平台。
2. 教学建议
本书作为教材, 篇幅及内容较多, 需要较多的课时进行教学。 建议在实际教学中将本书的内容分为理论教学与实验教学两个方面进行, 其中理论教学课时为48(或32)学时, 实验教学为48学时, 共计96(或80)学时。
在教学中可以根据具体的教学目标对本书的内容予以筛选, 如开设了“数据挖掘”“机器学习”以及“模式识别”课程的专业可以跳过第2篇, 仅将第2篇作为这些课程的参考内容来扩展学生的知识面。 对于没有开设上述课程的专业, 教师在具体教学中可简单地讲授第2篇的基本概念和重要结论, 具体数学推导可以跳过。
本书中有大量的操作, 并提供了这些操作的代码与示例运行结果的界面。 示例代码用方
框包围起来, 代码也出现在了界面截图上, 在应用这些代码进行验证时, 请将两者结合起来一同使用。
本书可作为高等学校大数据专业方向以及计算机科学技术、 软件工程、 物联网工程等信息科学技术类专业的本科教材, 也可作为从事相关专业的技术人员的参考资料。
本书由曾宪武统稿。 曾宪武编著了第1、 2篇, 第3篇中第13章到第24章; 包淑萍编著了第3篇中第11、 12、 25章。 本书中示例与代码的编写与调试工作由徐美娇、 侯孝振、 倪振宇、 衣丽萍同学完成。 本书在编著过程中得到了青岛科技大学物联网工程教研室老师的大力协助, 也得到了西安电子科技大学出版社副总编毛红兵老师的关怀与帮助, 在此表示衷心的感谢。
由于编著者的水平有限, 书中难免有不当之处, 敬请读者给予批评指正!
第1篇 大数据系统基础
第1章 概述 2
1.1 大数据发展现状与历史 2
1.1.1 国外发展现状 2
1.1.2 国内发展现状 3
1.1.3 大数据发展历史 4
1.2 大数据定义 5
1.3 大数据应用 6
1.4 大数据挑战 7
1.5 大数据机器学习 9
1.5.1 数据流学习 9
1.5.2 深度学习 9
1.5.3 增量学习和集成学习 10
1.5.4 粒度计算 11
1.6 大数据与Hadoop生态系统 11
1.6.1 数据存储层——HDFS和HBase 12
1.6.2 数据处理层 13
1.6.3 数据查询层——Pig、 JAQL和Hive 14
1.6.4 数据访问层——数据提取(Sqoop、 Flume和Chukwa) 15
1.6.5 数据流——Storm和Spark 17
1.6.6 存储管理——HCatalog 18
1.6.7 数据分析 19
1.6.8 管理层——协同与工作流(ZooKeeper、 Avro和Oozie) 20
1.6.9 管理层——系统部署(Ambari、 Whirr、 BigTop和Hue) 21
1.7 Hadoop的发行版本 22
1.7.1 IBM InfoSphere BigInsights 22
1.7.2 Cloudera 22
1.7.3 Hortonworks数据平台 23
1.7.4 Amazon Elastic MapReduce 23
1.7.5 MapR 24
1.7.6 GreenPlum’s Pivotal HD 24
1.7.7 Oracle大数据设备 24
1.7.8 Windows Azure HDInsight 24
小结 25
思考与练习题 25
第2章 大数据基础 26
2.1 大数据架构的演进及其层次 26
2.2 数据生成 27
2.2.1 数据源 28
2.2.2 数据属性 29
2.3 大数据类型概述 29
2.3.1 大数据类型 29
2.3.2 非结构化数据典型例子 30
2.4 数据获取 30
2.4.1 数据采集与数据传输 31
2.4.2 数据预处理 33
2.5 数据存储 34
2.5.1 云计算 34
2.5.2 数据管理框架 35
2.6 数据分析 38
2.6.1 数据分析的目的和分类 38
2.6.2 常用的数据分析方法 39
2.7 大数据分析 40
2.7.1 结构化数据分析 40
2.7.2 文本分析 40
2.7.3 Web数据分析 41
2.7.4 多媒体数据分析 42
2.7.5 社交网络数据分析 42
2.7.6 移动数据分析 44
2.7.7 移动商业智能 44
小结 45
思考与练习题 45
第2篇 大数据分析理论基础
第3章 概率与统计概要 48
3.1 概率论简介 48
3.1.1 离散随机变量 48
3.1.2 基本规则 48
3.1.3 贝叶斯法则 49
3.1.4 独立和条件独立 50
3.1.5 连续随机变量 50
3.1.6 分位数 51
3.1.7 均值与方差 51
3.2 常用的离散分布 52
3.2.1 二项式分布与伯努利分布 52
3.2.2 多项式分布与Multinoulli分布 52
3.2.3 泊松分布 53
3.2.4 经验分布 53
3.3 常见的连续分布 54
3.3.1 高斯(正态)分布 54
3.3.2 退化概率密度函数 54
3.3.3 拉普拉斯分布 55
3.3.4 伽马分布 55
3.3.5 贝塔分布 56
3.3.6 帕累托分布 56
3.4 联合概率分布 57
3.4.1 协方差与相关 57
3.4.2 多变量高斯分布 58
3.4.3 多变量的t分布 58
3.4.4 狄利克雷分布 58
3.5 随机变量的变换 59
3.5.1 线性变换 59
3.5.2 通用变换 59
3.5.3 中心极限定理 61
3.6 蒙特卡洛逼近 61
3.6.1 MC方法 62
3.6.2 圆周率的蒙特卡洛积分估计 62
3.6.3 蒙特卡洛逼近的精度 62
小结 63
思考与练习题 63
第4章 数据挖掘基础 66
4.1 数据挖掘的基本概念 66
4.1.1 数据挖掘的含义 66
4.1.2 数据挖掘对象 67
4.1.3 数据挖掘系统的体系结构 68
4.2 数据挖掘的功能与方法 69
4.2.1 数据挖掘的功能 69
4.2.2 数据挖掘的过程 72
4.3 决策树 74
4.3.1 基本概念 74
4.3.2 决策树的算法与工作流程 75
4.4 分类挖掘 76
4.4.1 贝叶斯分类与朴素贝叶斯分类 76
4.4.2 k近邻方法 77
小结 78
思考与练习题 78
第5章 关联挖掘与聚类 79
5.1 关联挖掘 79
5.1.1 基本概念 79
5.1.2 关联挖掘问题、 类型与基本方法 80
5.2 聚类 81
5.2.1 聚类的基本概念 81
5.2.2 基于划分的聚类 85
5.2.3 基于层次的聚类 86
小结 87
思考与练习题 88
第6章 离散数据的生成模型 89
6.1 贝塔二项式模型 89
6.1.1 似然度 89
6.1.2 先验分布 89
6.1.3 后验分布 90
6.1.4 后验预测分布 91
6.2 狄利克雷多项式模型 91
6.2.1 似然度 91
6.2.2 先验分布 92
6.2.3 后验分布 92
6.2.4 后验预测分布 93
6.3 朴素贝叶斯分类器 93
6.3.1 模型拟合 93
6.3.2 预测模型的应用 94
小结 95
思考与练习题 95
第7章 高斯模型 97
7.1 高斯模型基础 97
7.2 高斯判决分析 99
7.3 联合高斯分布的推理 103
7.4 线性高斯系统 107
7.5 MVN的参数推断 110
7.5.1 μ的后验分布 110
7.5.2 Σ的后验分布 111
7.5.3 μ与Σ的后验分布 112
小结 116
思考与练习题 116
第8章 线性回归 119
8.1 规范模型 119
8.2 最大似然估计(最小平方) 119
8.3 鲁棒线性回归 121
8.4 岭回归 123
8.5 贝叶斯线性回归 125
8.5.1 后验分布计算 125
8.5.2 后验预测计算 126
8.5.3 σ2未知时的贝叶斯推理 126
小结 128
思考与练习题 128
第9章 逻辑回归 132
9.1 规范模型 132
9.2 模型拟合 132
9.2.1 MLE 133
9.2.2 最速下降 133
9.2.3 牛顿法 135
9.2.4 迭代加权最小二乘法(IRLS) 135
9.2.5 拟牛顿法(变尺度法) 136
9.2.6 正则化 137
9.2.7 多类逻辑回归 137
9.3 贝叶斯逻辑回归 139
9.3.1 拉普拉斯逼近 139
9.3.2 BIC推导 140
9.3.3 逻辑回归的高斯逼近 140
9.3.4 后验预测逼近 141
9.3.5 残差分析(异常值检测) 144
9.4 在线学习与随机优化 144
9.4.1 在线学习与遗憾最小化 145
9.4.2 随机优化与风险最小化 145
9.4.3 LMS算法 147
9.4.4 感知算法 147
9.4.5 贝叶斯观点 148
小结 148
思考与练习题 149
第10章 广义线性模型与指数函数簇 151
10.1 指数函数簇 151
10.1.1 定义 151
10.1.2 对数配分函数 153
10.1.3 指数函数簇的MLE 154
10.1.4 指数函数簇的贝叶斯分析 155
10.1.5 指数函数簇的最大熵推导 157
10.2 广义线性模型(GLMs) 158
10.2.1 基础知识 158
10.2.2 ML和MAP估计 160
10.3 概率回归 160
10.4 排序学习 162
10.4.1 逐点的方法 163
10.4.2 成对法 163
10.4.3 成列法 164
10.4.4 排序的损失函数 165
10.5 主成分分析(PCA)与奇异值分解 166
10.5.1 主成分分析 166
10.5.2 奇异值分解 169
小结 170
思考与练习 171
第3篇 大数据技术
第11章 Hadoop基础 174
11.1 大数据与Hadoop 174
11.2 Hadoop框架的主要组件 175
11.3 用Hadoop分析大数据 176
11.4 Hadoop分布式文件系统与集群 179
11.4.1 HDFS 179
11.4.2 Hadoop集群 180
11.5 通用并行文件系统(IBM GPFS) 181
11.6 MapReduce引擎——JobTracker与TaskTracker 182
11.7 Hadoop的云端托管 183
11.8 Hadoop的工作阶段与安装部署 184
11.8.1 工作阶段 184
11.8.2 安装部署 184
11.8.3 常用模式安装 186
小结 192
思考与练习题 193
第12章 IBM InfoSphere BigInsights 194
12.1 IBM InfoSphere BigInsights简介与环境 194
12.1.1 几个角色 194
12.1.2 参考架构 196
12.2 生产环境的硬件规格及加速器 200
12.2.1 硬件要求 200
12.2.2 IBM大数据加速器 200
12.3 管理大数据环境——概述与入门练习 202
小结 212
思考与练习题 213
第13章 Hadoop分布式文件系统 214
13.1 Hadoop分布式文件系统(HDFS)基本知识及架构 214
13.1.1 NameNode 215
13.1.2 DataNode与辅助NameNode 215
13.1.3 JobTracker与TaskTracker 217
13.2 其他文件系统与Hadoop的文件块 217
13.3 HDFS文件命令 218
13.4 Hadoop分布式文件系统的基本操作 222
13.4.1 初步操作 222
13.4.2 Hadoop分布式文件系统的终端操作与行命令界面 224
13.4.3 Hadoop分布式文件系统的Web控制台操作 230
小结 235
思考与练习题 235
第14章 NoSQL数据管理与MongoDB 236
14.1 NoSQL数据管理 236
14.1.1 文档模型 236
14.1.2 键/值模型 238
14.1.3 列或宽列模型 238
14.1.4 图存储模型 239
14.2 一致性或最终一致性与NoSQL的优点 240
14.3 MongoDB 242
14.3.1 MongoDB的基本概念 242
14.3.2 MongoDB的一致性和可用性 245
14.4 在Windows上安装MongoDB 246
14.5 管道与MongoDB常用操作 247
14.5.1 MongoDB中的管道 247
14.5.2 副本在MongoDB中的工作 248
14.5.3 分拆 249
14.5.4 分拆转储MongoDB数据 250
小结 251
思考与练习题 252
第15章 HBase与Cassandra 253
15.1 HDFS与HBase 253
15.1.1 HBase简介 253
15.1.2 HDFS与HBase的比较 254
15.1.3 HBase架构 254
15.1.4 HBase数据模型 255
15.1.5 HBase映射 256
15.2 Cassandra 259
15.2.1 Cassandra概要 259
15.2.2 Cassandra中的数据复制与组件 260
15.2.3 Cassandra查询语言与数据模型 261
15.3 Cassandra安装与操作 263
15.3.1 Cassandra预安装设置 263
15.3.2 cqlsh启动与命令 267
15.3.3 Cassandra文档化Shell命令 269
小结 279
思考与练习题 280
第16章 MapReduce 281
16.1 MapReduce概要 281
16.2 MapReduce基本工作原理及应用 282
16.2.1 基本工作原理 282
16.2.2 MapReduce编程示例——电影推荐 284
16.2.3 MapReduce中JobTracker的运用 285
16.3 运行MapReduce程序 286
16.3.1 启动FuleSystem(fs) Shell 286
16.3.2 在终端运行MapReduce程序 287
16.3.3 在Web控制台上运行MapReduce程序 292
16.3.4 MapReduce的用户界面 295
小结 297
思考与练习题 297
第17章 JAQL——基于JSON的查询语言 298
17.1 概述 298
17.2 用JAQL访问JSON的数组和记录 299
17.2.1 设置与运行JAQL 299
17.2.2 JAQL的常见用法和语法 302
17.2.3 JAQL的输入/输出 305
17.2.4 常见的JAQL基本应用 306
实验一 核心运算符的操作 324
实验二 核心运算符的应用 325
小结 325
思考与练习题 336
第18章 Hive——Hadoop数据仓库 327
18.1 概述 327
18.2 Hive构件及数据文件格式 330
18.2.1 Hive构件 330
18.2.2 Hive数据文件格式 331
18.3 用Hive访问Hadoop数据 332
18.3.1 访问Hive BeeLine 命令行界面(CLI) 333
18.3.2 使用Hive中的数据库 333
18.4 Hive中的表 339
18.5 Hive运算符和函数 342
18.6 Hive DML 344
18.6.1 装载数据 345
18.6.2 运行查询 347
18.6.3 导出数据 352
18.6.4 EXPLAIN 354
18.7 使用Hive数据仓库 354
18.7.1 Hive存储格式 354
18.7.2 HiveQL——数据操作 362
18.7.3 查询 365
18.7.4 Hive的内置函数 369
小结 370
思考与练习题 371
第19章 Pig——高级编程环境 372
19.1 概述 372
19.2 Pig编程语言 374
19.2.1 Pig编程步骤 374
19.2.2 Pig Latin 374
19.2.3 特殊数据类型 375
19.2.4 数据类型 377
19.3 Pig基本应用的验证与练习 379
19.4 Pig关系运算符的验证 384
19.5 Pig评估函数的验证 386
19.6 Pig中的脚本格式与本地模式中的Pig 390
19.6.1 脚本格式 390
19.6.2 本地模式 391
19.6.3 Grunt Shell命令 394
19.6.4 Grunt Shell实用命令 394
小结 397
思考与练习题 398
第20章 BigSheets 399
20.1 创建InfoSphere BigInsights项目 400
20.2 通过创建子工作簿来裁剪数据 400
20.3 从两个工作簿中组合数据 402
20.4 通过分组数据创建列 403
20.5 在BigSheets图中查看数据 404
20.6 在图表中可视化结果和优化结果 404
20.7 从工作簿中导出数据 406
小结 407
思考与练习题 408
第21章 Big SQL——IBM NoSQL 409
21.1 概述 409
21.2 Big SQL的基本应用 411
21.2.1 启动VMware镜像 411
21.2.2 连接IBM Big SQL服务器 413
21.2.3 使用Big SQL命令行界面(JSqsh) 415
21.2.4 发送JSqsh命令以及进行Big SQL查询 423
21.3 使用Eclipse处理Big SQL 428
21.3.1 启动Web控制台验证BigInsights服务的开启和运行 429
21.3.2 在Eclipse中创建一个Big SQL连接 230
21.4 创建项目和SQL脚本文件 435
21.5 创建并执行查询 438
21.6 查询Big SQL的结构化数据 439
21.7 查询Big SQL的数据与从BigSheets导出的数据 446
21.7.1 查询Big SQL的数据 446
21.7.2 用Big SQL处理从BigSheets导出的数据 448
21.8 处理非传统数据 449
21.8.1 注册SerDe 450
21.8.2 创建、 填充以及查询使用SerDe的表 450
小结 451
思考与练习题 452
第22章 Sqoop——从异构数据源导入数据 453
22.1 概述 453
22.2 导入表 455
22.3 导出 461
22.4 创建并维护Sqoop作业 462
22.5 Sqoop——Codegen工具 464
22.6 Sqoop——eval 465
22.7 Sqoop——数据库清单 466
22.8 Sqoop——表清单 467
小结 467
思考与练习题 467
第23章 Flume——大数据实时流 469
23.1 概述 469
23.2 Apache Flume的流与源 470
23.2.1 Flume中的数据流 471
23.2.2 流/日志数据 471
23.3 Flume的基本架构与代理的其他组件 472
23.3.1 Flume的基本架构 472
23.3.2 Flume代理的其他组件 473
23.4 Apache Flume的环境 474
23.4.1 命名组件 474
23.4.2 Source、 Sink和Channel的描述 475
23.5 HDFS的put命令及其HDFS存在的问题 476
23.5.1 put命令 476
23.5.2 HDFS具有的问题 477
实验 使用Flume将数据移动到HDFS中 477
小结 481
思考与练习题 482
第24章 R编程——可视化与图形工具 483
24.1 概述 483
24.2 R语言入门 483
24.2.1 在Windows系统中安装R语言 483
24.2.2 使用R语言进行数据图表绘制 488
小结 497
思考与练习题 498
第25章 Hadoop的其他组件——Oozie、 ZooKeeper和Mahout 499
25.1 Hadoop工作流调度程序Oozie简介 499
25.2 ZooKeeper——跨集群的同步化 500
25.2.1 Apache ZooKeeper简介 500
25.2.2 ZooKeeper在Hadoop中的地位 501
25.2.3 分布式应用程序的挑战 501
25.2.4 ZooKeeper的工作 502
25.2.5 ZooKeeper的益处与架构 502
25.2.6 分层命名空间 504
25.2.7 znode的类型、 会话与Watches(手表) 505
25.3 Mahout——Hadoop的机器学习 505
25.3.1 Apache Mahout简介 505
25.3.2 Mahout的特点 506
25.3.3 Mahout的应用 507
25.3.4 Mahout中的机器学习 507
小结 511
思考与练习题 512
参考文献 513
你还可能感兴趣
我要评论
|