什么是"Hadoop"——Hadoop的定义?
What is "Hadoop" - the definition of 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" 术语没有有用的定义。 "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 上的用例:
- 机器学习中的迭代算法
- 交互式数据挖掘和数据处理
- 流处理
- 传感器数据处理
Spark没有存储系统,只能依赖其中一种分布式存储,HDFS就是其中之一。
看看相关的SE问题:
为什么我们需要大数据系统?
- STORE(存储海量数据)
- PROCESS(及时处理data/requests)
- SCALE(随着数据增长轻松扩展)
google提供了大数据解决方案。
- Google文件系统:解决分布式存储
- Map Reduce:解决分布式计算。
Google发表了研究论文。 Apache开发的开源系统类似于Google开发的,被称为HADOOP.
- 类似于Google hadoop中的文件系统是HDFS(Hadoop分布式文件系统):管理数据存储的文件系统。
- MAP Reduce:跨多个服务器处理数据的框架。
注:2013年Apache发布HADOOP 2.0
(MapReduce 分为两个部分:
- MapReduce:定义数据处理任务的框架。
- YARN:运行 数据处理任务的框架。
)
HADOOP 生态系统
Hadoop 并不容易理解,而且仅限于硬核开发人员。所以让hadoop的使用更容易。许多工具 sp运行g 起来,作为一个整体被称为 Hadoop 生态系统。
Hadoop 生态系统包含如下工具:
- HIVE:
- 为 hadoop 提供 SQL 接口。
- 为那些在 JAVA.
中没有接触过 OOP 的人搭建通往 hadoop 的桥梁
- HBASE:
- 基于 hadoop 的数据库管理系统。
- 像传统数据库一样与我们的应用集成。
猪:
- 数据操作语言。
- 将非结构化数据转换为结构化格式。
- 使用 Hive 等接口查询此结构化数据。
SPARK:
- 与 Hadoop 一起使用的分布式计算引擎。
- 交互式 shell 以快速处理数据集。
- 有一堆用于机器学习流处理、图形处理等的内置库
OOZIE:
- 用于在所有 hadoop 生态系统技术上安排工作流的工具。
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
这很明显,我们都同意我们可以将 HDFS + YARN + MapReduce
称为 Hadoop。但是 Hadoop 生态系统中的其他不同组合和其他产品会怎样?
例如,HDFS + YARN + Spark
还是Hadoop? HBASE
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 上的用例:
- 机器学习中的迭代算法
- 交互式数据挖掘和数据处理
- 流处理
- 传感器数据处理
Spark没有存储系统,只能依赖其中一种分布式存储,HDFS就是其中之一。
看看相关的SE问题:
为什么我们需要大数据系统?
- STORE(存储海量数据)
- PROCESS(及时处理data/requests)
- SCALE(随着数据增长轻松扩展)
google提供了大数据解决方案。
- Google文件系统:解决分布式存储
- Map Reduce:解决分布式计算。
Google发表了研究论文。 Apache开发的开源系统类似于Google开发的,被称为HADOOP.
- 类似于Google hadoop中的文件系统是HDFS(Hadoop分布式文件系统):管理数据存储的文件系统。
- MAP Reduce:跨多个服务器处理数据的框架。
注:2013年Apache发布HADOOP 2.0 (MapReduce 分为两个部分:
- MapReduce:定义数据处理任务的框架。
- YARN:运行 数据处理任务的框架。 )
HADOOP 生态系统
Hadoop 并不容易理解,而且仅限于硬核开发人员。所以让hadoop的使用更容易。许多工具 sp运行g 起来,作为一个整体被称为 Hadoop 生态系统。
Hadoop 生态系统包含如下工具:
- HIVE:
- 为 hadoop 提供 SQL 接口。
- 为那些在 JAVA. 中没有接触过 OOP 的人搭建通往 hadoop 的桥梁
- HBASE:
- 基于 hadoop 的数据库管理系统。
- 像传统数据库一样与我们的应用集成。
猪:
- 数据操作语言。
- 将非结构化数据转换为结构化格式。
- 使用 Hive 等接口查询此结构化数据。
SPARK:
- 与 Hadoop 一起使用的分布式计算引擎。
- 交互式 shell 以快速处理数据集。
- 有一堆用于机器学习流处理、图形处理等的内置库
OOZIE:
- 用于在所有 hadoop 生态系统技术上安排工作流的工具。
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