什么是"Hadoop"——Hadoop的定义?

What is "Hadoop" - the definition of Hadoop?

这很明显,我们都同意我们可以将 HDFS + YARN + MapReduce 称为 Hadoop。但是 Hadoop 生态系统中的其他不同组合和其他产品会怎样?

例如,HDFS + YARN + Spark还是HadoopHBASE Hadoop? 我想我们考虑 HDFS + YARN + Pig Hadoop,因为 Pig 使用 MapReduce.

仅考虑 MapReduce 工具 Hadoop,但 HDFS + YARN 上的任何其他 运行(例如 Spark) 非 Hadoop?

我同意您的看法,即 "Hadoop" 术语没有有用的定义。 "We have a Hadoop cluster"可能有不同的含义。

尽管在 http://hadoop.apache.org/#What+Is+Apache+Hadoop%3F:

有一个官方答案

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.

所以"Hadoop"是一个项目的名字,也是一个软件库。任何其他用法定义不明确。

最普遍接受的 Hadoop 理解:HDFS 和 Map/Reduce 及其相关流程和工具。

相关术语:Hadoop 生态系统:Hive/Pig/Hbase、Zookeeper、Oozie。还有供应商特定的,例如 impala、ambari.

除了来自 Official website, I would like to highlight that Hadoop is a framework and there are many sub-systems in Hadoop ecosystem

的 Apache hadoop 定义

从官方网站引用此内容,以便将来断开的链接不会对该答案造成任何问题。

该项目包括这些模块:

Hadoop Common: 支持其他 Hadoop 模块的通用实用程序。

Hadoop 分布式文件系统 (HDFS™): 一种提供对应用程序数据的高吞吐量访问的分布式文件系统。

Hadoop YARN:作业调度和集群资源管理的框架。

Hadoop MapReduce: 基于 YARN 的大型数据集并行处理系统。

或多或少,

Hadoop = 分布式存储(HDFS)+分布式处理(YARN + Map Reduce)

但这四个模块并没有涵盖完整的Hadoop生态系统。 Hadoop生态系统中有很多Hadoop相关项目和40+个子系统。

Apache 的其他 Hadoop 相关项目包括:

Ambari™: 一个基于 Web 的工具,用于配置、管理和监控 Apache Hadoop 集群,包括对 Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper 的支持、Oozie、Pig 和 Sqoop。

Avro™:数据序列化系统。

Cassandra™: 无单点故障的可扩展多主数据库。

Chukwa™: 用于管理大型分布式系统的数据收集系统。

HBase™: 一种可扩展的分布式数据库,支持大型表的结构化数据存储。

Hive™: 提供数据汇总和即席查询的数据仓库基础设施。

Mahout™: 一个可扩展的机器学习和数据挖掘库。

Pig™: 一种用于并行计算的高级数据流语言和执行框架。

Spark™: 一种用于 Hadoop 数据的快速通用计算引擎。 Spark 提供了一种简单而富有表现力的编程模型,支持广泛的应用,包括 ETL、机器学习、流处理和图形计算。

Tez™: 一个基于 Hadoop YARN 的通用数据流编程框架,它提供了一个强大而灵活的引擎来执行任意 DAG 任务来处理数据批处理和交互式用例。 Tez 被 Hive™、Pig™ 和 Hadoop 生态系统中的其他框架以及其他商业软件(例如 ETL 工具)采用,以取代 Hadoop™ MapReduce 作为底层执行引擎。

ZooKeeper™: 分布式应用程序的高性能协调服务。

回到你的问题:

看看Hadoop生态系统中的40多个子系统。您引用的所有内容可能都不是 Hadoop,但大多数都与 Hadoop 相关。

Spark 是 Hadoop 生态系统的一部分。但是它既不能使用HDFS,也不能使用YARN。 HDFS数据集可以用RDD(弹性分布式数据集)替换,并且可以运行在Standalone模式下不用YARN

查看此 article and this article Hadoop 和 Spark 比较。

Spark 在 Hadoop 上的用例:

  1. 机器学习中的迭代算法
  2. 交互式数据挖掘和数据处理
  3. 流处理
  4. 传感器数据处理

Spark没有存储系统,只能依赖其中一种分布式存储,HDFS就是其中之一。

看看相关的SE问题:

为什么我们需要大数据系统?

  1. STORE(存储海量数据)
  2. PROCESS(及时处理data/requests)
  3. SCALE(随着数据增长轻松扩展)

google提供了大数据解决方案。

  • Google文件系统:解决分布式存储
  • Map Reduce:解决分布式计算。

Google发表了研究论文。 Apache开发的开源系统类似于Google开发的,被称为HADOOP.

  • 类似于Google hadoop中的文件系统是HDFS(Hadoop分布式文件系统):管理数据存储的文件系统。
  • MAP Reduce:跨多个服务器处理数据的框架。

注:2013年Apache发布HADOOP 2.0 (MapReduce 分为两个部分:

  1. MapReduce:定义数据处理任务的框架。
  2. YARN:运行 数据处理任务的框架。 )

HADOOP 生态系统

Hadoop 并不容易理解,而且仅限于硬核开发人员。所以让hadoop的使用更容易。许多工具 sp运行g 起来,作为一个整体被称为 Hadoop 生态系统。

Hadoop 生态系统包含如下工具:

  1. HIVE:
    • 为 hadoop 提供 SQL 接口。
    • 为那些在 JAVA.
    • 中没有接触过 OOP 的人搭建通往 hadoop 的桥梁
  2. HBASE:
    • 基于 hadoop 的数据库管理系统。
    • 像传统数据库一样与我们的应用集成。
  3. :

    • 数据操作语言。
    • 将非结构化数据转换为结构化格式。
    • 使用 Hive 等接口查询此结构化数据。
  4. SPARK:

    • 与 Hadoop 一起使用的分布式计算引擎。
    • 交互式 shell 以快速处理数据集。
    • 有一堆用于机器学习流处理、图形处理等的内置库
  5. OOZIE:

    • 用于在所有 hadoop 生态系统技术上安排工作流的工具。
  6. FLUME/SQOOP:

    • 在其他系统和 hadoop 之间传输数据的工具。

这是对 Hadoop 的非常高层次的概述。

Hadoop 不是像 LAMP 或 MEAN 堆栈那样的堆栈。 Hadoop 是框架和工具的集合,它们协同工作以解决复杂的大数据问题。

基本上是Apache基金会下的一个Project。 Mapreduce、Ambari、Sqoop、Spark、Zookeeper 等各种子项目共同构成了所谓的 Hadoop 生态系统。

来源:https://www.datacloudschool.com/2020/01/introduction-what-is-hadoop.html