大数据是海量结构化、非结构化或半结构化数据的响亮名称,众所周知难以捕获、存储、管理、共享、分析和可视化,至少使用传统数据库和软件应用程序是如此。 这就是大数据技术具有有效管理和处理海量数据的潜力的原因。 Apache Hadoop 提供框架和相关技术,以分布式方式跨计算机集群处理大型数据集。 因此,为了真正理解大数据,您需要对 Hadoop 有所了解。 在这里,我们将了解您会听到的有关 Hadoop 的最常见术语 – 以及它们的含义。
但首先,看看 Hadoop 是如何工作的
在进入 Hadoop 生态系统之前,您需要清楚地了解两件基本的事情。 第一个是文件在 Hadoop 中的存储方式; 第二个是如何处理存储的数据。 所有与Hadoop相关的技术都主要在这两个方面进行工作,使其更加人性化。 (在 Hadoop 如何帮助解决大数据问题中获取 Hadoop 工作原理的基础知识。)
现在,关于条款。
Hadoop通用
Hadoop 框架具有用于不同功能的不同模块,并且这些模块可以出于各种原因相互交互。 Hadoop Common 可以定义为一个通用的实用程序库,以支持 Hadoop 生态系统中的这些模块。 这些实用程序基本上是基于 Java 的归档 (JAR) 文件。 这些实用程序主要由程序员和开发人员在开发期间使用。
Hadoop 分布式文件系统 (HDFS)
Hadoop 分布式文件系统 (HDFS) 是 Apache 软件基金会下的 Apache Hadoop 的一个子项目。 这是 Hadoop 框架中存储的支柱。 它是一个分布式、可扩展和容错的文件系统,跨越多个称为 Hadoop 集群的商品硬件。 HDFS 的目标是通过对应用程序数据的高吞吐量访问可靠地存储大量数据。 HDFS 遵循主/从架构,其中主节点称为 NameNode,从节点称为 DataNode。
MapReduce
Hadoop MapReduce 也是 Apache 软件基金会的一个子项目。 MapReduce实际上是一个纯Java编写的软件框架。 它的主要目标是以完全并行的方式在分布式环境(由商品硬件组成)上处理大型数据集。 该框架管理所有活动,如作业调度、监控、执行和重新执行(在任务失败的情况下)。
数据库
Apache HBase 被称为 Hadoop 数据库。 它是一个列式、分布式和可扩展的大数据存储。 它也被称为一种 NoSQL 数据库,不是关系数据库管理系统。 HBase 应用程序也是用 Java 编写的,构建在 Hadoop 之上并在 HDFS 上运行。 当您需要实时读写和随机访问大数据时,使用 HBase。 HBase 是基于 Google 的 BigTable 概念建模的。
蜂巢
Apache Hive 是一个开源数据仓库软件系统。 Hive 最初由 Facebook 开发,然后才归入 Apache 软件基金会并成为开源软件。 它有助于在分布式 Hadoop 兼容存储上管理和查询大型数据集。 Hive 通过使用称为 HiveQL 的类似 SQL 的语言来执行其所有活动。 (在 Apache Hive 和 Pig 简介中了解更多信息。)
阿帕奇猪
Pig 最初由 Yahoo 发起,用于在大量分布式数据上开发和执行 MapReduce 作业。 现在它已经成为 Apache 软件基金会下的一个开源项目。 Apache Pig 可以定义为一个以高效方式分析超大型数据集的平台。 Pig 的基础设施层生成用于执行实际处理的 MapReduce 作业序列。 Pig 的语言层称为 Pig Latin,它提供类似 SQL 的功能来对分布式数据集执行查询。
阿帕奇星火
Spark 最初是由加州大学伯克利分校的 AMPLab 开发的。 它于 2014 年 2 月成为 Apache 顶级项目。Apache Spark 可以定义为一个开源的、通用的、集群计算框架,可以使数据分析更快。 它建立在 Hadoop 分布式文件系统之上,但未与 MapReduce 框架链接。 与 MapReduce 相比,Spark 的性能要快得多。 它在 Scala、Python 和 Java 中提供高级 API。
阿帕奇卡桑德拉
Apache Cassandra 是另一个开源 NoSQL 数据库。 Cassandra 广泛用于管理跨越多个数据中心和云存储的大量结构化、半结构化和非结构化数据。 Cassandra 是基于“无主”架构设计的,这意味着它不支持主/从模型。 在此架构中,所有节点都是相同的,并且数据自动且平等地分布在所有节点上。 Cassandra 最重要的特性是持续可用性、线性可扩展性、内置/可定制复制、无单点故障和操作简单性。
Yet Another Resource Negotiator(YARN)
Yet Another Resource Negotiator (YARN) 也称为 MapReduce 2.0,但它实际上属于 Hadoop 2.0。 YARN 可以定义为作业调度和资源管理框架。 YARN 的基本思想是用两个负责资源管理和调度/监控的独立守护进程取代 JobTracker 的功能。 在这个新框架中,将有一个全局 ResourceManager (RM) 和一个称为 ApplicationMaster (AM) 的特定于应用程序的主控器。 全局 ResourceManager (RM) 和 NodeManager(每个节点从属)构成了实际的数据计算框架。 现有的 MapReduce v1 应用程序也可以在 YARN 上运行,但这些应用程序需要使用 Hadoop2.x jar 重新编译。
黑斑羚
Impala 可以定义为具有大规模并行处理 (MPP) 能力的 SQL 查询引擎。 它在 Apache Hadoop 框架上本地运行。 Impala 被设计为 Hadoop 生态系统的一部分。 它与其他 Hadoop 生态系统组件共享相同的灵活文件系统 (HDFS)、元数据、资源管理和安全框架。 最重要的一点是要注意,与 Hive 相比,Impala 在查询处理方面要快得多。 但我们还应该记住,Impala 用于对一小组数据进行查询/分析,主要设计为一种分析工具,用于处理经过处理的结构化数据。
Hadoop 是 IT 中的一个重要话题,但有些人对其长期可行性持怀疑态度。 阅读什么是 Hadoop? 愤世嫉俗者的理论。