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

时间:2015-01-24 19:41:53

标签: hadoop hbase hdfs apache-spark yarn

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

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

只有 MapReduce 工具被视为 Hadoop ,但在HDFS + YARN上运行的任何其他内容(如 Spark )都是非Hadoop

5 个答案:

答案 0 :(得分:6)

我同意您的印象,“Hadoop”一词没有有用的定义。 “我们有一个Hadoop集群”可能意味着各种各样的事情。

http://hadoop.apache.org/#What+Is+Apache+Hadoop%3F有正式答案:

  

Apache™Hadoop®项目开发了开源软件   可靠,可扩展的分布式计算。

     

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

所以“Hadoop”是项目和软件库的名称。任何其他用法都是不明确的。

答案 1 :(得分:2)

除了来自Official website的Apache hadoop定义之外,我想强调 Hadoop是一个框架Hadoop ecosystem中有很多子系统

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

该项目包括以下模块:

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正被Hadoop生态系统中的Hive™,Pig™和其他框架以及其他商业软件(例如ETL工具)采用,以取代Hadoop™MapReduce作为底层执行引擎。

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

回到你的问题:

在Hadoop生态系统中查看40多个子系统。你引用的每件事都可能不是Hadoop,但大多数都与Hadoop有关。

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

请查看此article和此article以了解Hadoop&星火比较。

针对Hadoop的Spark用例:

  1. 机器学习中的迭代算法
  2. 交互式数据挖掘和数据处理
  3. 流处理
  4. 传感器数据处理
  5. 由于Spark没有存储系统,因此它必须依赖于HDFS就是其中之一的分布式存储之一。

    看看相关的SE问题:

    Can apache spark run without hadoop?

答案 2 :(得分:1)

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

相关术语:Hadoop生态系统:Hive / Pig / Hbase,Zookeeper,Oozie。也是供应商特定的,如impala,ambari。

答案 3 :(得分:1)

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

  1. 存储(存储大量数据)
  2. 处理(及时处理数据/请求)
  3. SCALE (随着数据增长而轻松扩展)
  4. 谷歌提供了一个大数据解决方案。

    • Google文件系统:解决分布式存储问题。
    • Map Reduce:解决分布式计算问题。
    谷歌发表了研究论文。 Apache开发的开源系统类似于Google开发的,它被称为 HADOOP

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

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

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

      Hadoop并不容易理解,而且仅限于核心开发人员。所以使hadoop的使用更容易。大量工具如雨后春笋般出现,整体称为Hadoop生态系统。

      Hadoop Ecosystem包含以下工具:

      1. HIVE
        • 为hadoop提供了一个SQL接口。
        • 为那些在JAVA中没有接触过OOP的人们提供支持。
      2. HBASE
        • 在hadoop之上的数据库管理系统。
        • 就像传统数据库一样与我们的应用程序集成。
      3. PIG

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

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

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

        • 在其他系统和hadoop之间传输数据的工具。
      7. 总结了Hadoop的高级概述。

答案 4 :(得分:1)

Hadoop不是像LAMP或MEAN堆栈那样的堆栈。 Hadoop是一组框架和工具,可以共同解决复杂的大数据问题。

它基本上是Apache基金会的一个项目。诸如Mapreduce,Ambari,Sqoop,Spark,Zookeeper等各种子项目,都被称为Hadoop生态系统。

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