1.1 商业分析与大数据
商业分析通过统计和业务分析对数据进行研究。Hadoop 允许你 在其数据存储中进行业务分析。这些结果使得组织和公司能够做出 有利于自身的更好商业决策。
为加深理解,让我们勾勒一下大数据的概况。鉴于所涉及数据 的规模,它们会分布于大量存储和计算节点上,而这得益于使用 Hadoop。由于Hadoop 是分布式的(而非集中式的),因而不具备关系 型数据库管理系统(RDBMS)的特点。这使得你能够使用Hadoop 所 提供的大型数据存储和多种数据类型。
第1 章 Hadoop 概述
3
例如,让我们考虑类似Google、Bing 或者Twitter 这样的大型 数据存储。所有这些数据存储都会随着诸如查询和庞大用户基数等 活动事件而呈现出指数增长。Hadoop 的组件可以帮助你处理这些大 型数据存储。
类似Google 这样的商业公司可使用Hadoop 来操作、管理其数 据存储并从中产生出有意义的结果。通常用于商业分析的传统工具 并不旨在处理或分析超大规模数据集,但Hadoop 是一个适用于这 些商业模型的解决方案。
1.1.1 Hadoop 的组件
Hadoop Common 是Hadoop 的基础,因为它包含主要服务和基 本进程,例如对底层操作系统及其文件系统的抽象。Hadoop Common 还包含必要的Java 归档(Java Archive,JAR)文件和用于启 动Hadoop 的脚本。Hadoop Common 包甚至提供了源代码和文档, 以及贡献者的相关内容。如果没有Hadoop Common,你无法运行 Hadoop。
与任何软件栈一样,Apache 对于配置Hadoop Common 有一定 要求。大体了解Linux 或Unix 管理员所需的技能将有助于你完成配 置。Hadoop Common 也称为Hadoop Stack,并不是为初学者设计的, 因此实现的速度取决于你的经验。事实上,Apache 在其网站上明确 指出,如果你还在努力学习如何管理Linux 环境的话,那么Hadoop 并不是你能够应付的任务。建议在尝试安装Hadoop 之前,你需要 先熟悉此类环境。
1.1.2 Hadoop 分布式文件系统(HDFS)
在Hadoop Common 安装完成后,是时候该研究Hadoop Stack 的其余组件了。HDFS(Hadoop Distributed File System)提供一个分布 式文件系统,设计目标是能够运行在基础硬件组件之上。大多数企 业被其*小化的系统配置要求所吸引。此环境可以在虚拟机(Virtual Hadoop 大数据解决方案 Machine,VM)或笔记本电脑上完成初始配置,而且可以升级到服务 器部署。它具有高度的容错性,并且被设计为能够部署在低成本的 硬件之上。它提供对应用程序数据的高吞吐量访问,适合于面向大 型数据集的应用程序。
在任何环境中,硬件故障都是不可避免的。有了HDFS,你的 数据可以跨越数千台服务器,而每台服务器上均包含一部分基础数 据。这就是容错功能发挥作用的地方。现实情况是,这么多服务器 总会遇到一台或者多台无法正常工作的风险。HDFS 具备检测故障 和快速执行自动恢复的功能。
HDFS 的设计针对批处理做了优化,它提供高吞吐量的数据访 问,而非低延迟的数据访问。运行在HDFS 上的应用程序有着大型 数据集。在HDFS 中一个典型的文件大小可以达到数百GB 或更大, 所以HDFS 显然支持大文件。它提供高效集成数据带宽,并且单个 群集可以扩展至数百节点。
Hadoop 是一个单一功能的分布式系统,为了并行读取数据集并 提供更高的吞吐量,它与群集中的机器进行直接交互。可将Hadoop 想象为一个动力车间,它让单个CPU 运行在群集中大量低成本的机 器上。既然已经介绍了用于读取数据的工具,下一步便是用 MapReduce 来处理它。
1.1.3 MapReduce 是什么
MapReduce 是Hadoop 的一个编程组件,用于处理和读取大型 数据集。MapReduce 算法赋予了Hadoop 并行化处理数据的能力。 简而言之,MapReduce 用于将大量数据浓缩为有意义的统计分析结 果。MapReduce 可以执行批处理作业,即能在处理过程中多次读取 大量数据来产生所需的结果。
对于拥有大型数据存储或者数据湖的企业和组织来说,这是一 种重要的组件,它将数据限定到可控的大小范围内。在Hadoop *近的发展中,另有一款称为YARN 的组件已经可 用于进一步管理Hadoop 生态系统。 1.1.4 YARN 是什么 YARN 基础设施(另一个资源协调器)是一项用于提供执行应用 程序所需的计算资源(内存、CPU 等)的框架。 YARN 有什么诱人的特点或是性质?其中两个重要的部分是资 源管理器和节点管理器。让我们来勾勒YARN 的框架。首先考虑一 个两层的群集,其中资源管理器在顶层(每个群集中只有一个)。资 Hadoop 大数据解决方案 6 源管理器是主节点。它了解从节点所在的位置(较底层)以及它们拥 有多少资源。它运行了多种服务,其中*重要的是用于决定如何分 配资源的资源调度器。节点管理器(每个群集中有多个)是此基础设 施的从节点。当开始运行时,它向资源管理器声明自己。此类节点 有能力向群集提供资源,它的资源容量即内存和其他资源的数量。 在运行时,资源调度器将决定如何使用该容量。Hadoop 2 中的YARN 框架允许工作负载在各种处理框架之间动态共享群集资源,这些框 架包括MapReduce、Impala 和Spark。YARN 目前用于处理内存和 CPU,并将在未来用于协调其他资源,例如磁盘和网络I/O。
……