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



这是显而易见的,我们都会同意我们可以HDFS + YARN + MapReduce称为Hadoop。但是,Hadoop生态系统中不同的其他组合和其他产品会发生什么?

例如,HDFS + YARN + Spark仍然是Hadoop吗?HBASE是Hadoop吗?我想我们考虑HDFS + YARN + Pig Hadoop,因为Pig使用MapReduce。

只有MapReduce工具被认为是Hadoop,但是在HDFS + YARN上运行的其他东西(如Spark)是非Hadoop的吗?

我同意你的印象,即"Hadoop"术语没有有用的定义。"我们有一个Hadoop集群"可能意味着各种事情。

不过在 http://hadoop.apache.org/#What+Is+Apache+Hadoop%3F 有一个官方答案:

Apache™ Hadoop®项目为以下方面开发开源软件 可靠、可扩展的分布式计算。

Apache Hadoop软件库是一个框架,它允许 跨计算机集群对大型数据集进行分布式处理 使用简单的编程模型。

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

除了官网的Apache Hadoop定义之外,我想强调的是,Hadoop是一个框架,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(弹性分布式数据集)代替,并且可以在没有YARN的情况下以独立模式运行。

看看这篇文章和这篇文章的Hadoop和Spark比较。

通过HadoopSpark用例:

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

由于Spark没有存储系统,它必须依赖于分布式存储之一,其中HDFS就是其中之一。

看看相关的SE问题:

Apache Spark可以在没有hadoop的情况下运行吗?

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

相关术语:Hadoop生态系统:Hive/Pig/Hbase,Zookeeper,Oozie。 还有供应商特定的,如黑斑羚,安巴里。

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

  1. 存储(存储大量数据)
  2. 处理
  3. (及时处理数据/请求)
  4. 扩展
  5. (随着数据的增长轻松扩展

谷歌提供了一个大数据解决方案。

  • 谷歌文件系统:解决分布式存储问题。
  • Map Reduce:解决分布式计算问题。

谷歌发表了这些研究论文。Apache开发的开源系统类似于Google开发的开源系统,它被称为HADOOP。

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

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

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

HADOOP生态系统

Hadoop并不容易理解,它仅限于核心开发人员。 所以使Hadoop的使用更容易。许多工具如雨后春笋般涌现,它们作为一个整体被称为Hadoop生态系统。

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

  1. 蜂巢:
    • 提供 Hadoop 的 SQL 接口。
    • 对于
    • 没有 JAVA 中没有接触 OOP 的人来说,通往 Hadoop 的桥梁。
  2. HBASE:
    • Hadoop之上的数据库管理系统。
    • 与我们的应用程序集成,就像传统数据库一样。
    • 数据操作语言。
    • 将非结构化数据转换为结构化格式。
    • 使用 Hive 等接口查询此结构化数据。
  3. 火花

    • 与Hadoop一起使用的分布式计算引擎。
    • 用于快速处理数据集的交互式外壳。
    • 有一堆内置库,用于机器学习流处理、图形处理等。
  4. 奥齐

    • 工具,用于安排所有Hadoop生态系统技术的工作流程。
  5. 水槽
  6. /水槽

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

Hadoop的概述到此结束。

>Hadoop不是像LAMP或MEAN这样的堆栈。Hadoop是框架和工具的集合,可以解决复杂的大数据问题。

它基本上是Apache基金会下的一个项目。各种子项目,如Mapreduce,Ambari,Sqoop,Spark,Zookeeper等,togethor制作,所谓的Hadoop生态系统。

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

相关内容

  • 没有找到相关文章

最新更新