HDFS 中的数据节点与 Spark 集群中的执行器节点相同吗?

问题描述 投票:0回答:4

我正在学习 Apache Spark 和 HDFS。尽管我对一件事感到困惑,但我大部分都理解它们。我的问题是:HDFS中的数据节点与spark集群中的执行器节点相同吗?换句话说,HDFS 中的节点是对其包含的数据进行操作,还是将来自 HDFS 中的数据节点的数据发送到对数据进行操作的 Spark 集群中的执行器节点?如果您希望我澄清任何事情,请告诉我!任何帮助将非常感激!

谢谢你,

泰勒

apache-spark hadoop mapreduce hdfs
4个回答
2
投票

我总是首先从独立的角度思考这些概念,然后再从集群的角度思考这些概念。

考虑到单台机器(并且您还将在本地模式下运行 Spark),

DataNode
NameNode
只是支持 HDFS 抽象设计的软件(即
NameNode
存储文件树、文件元数据等,而
DataNode
存储实际数据块。)。
driver
executors
是Spark中的概念,在本地模式下,Spark应用程序由一个
driver
进程和一组
executor
进程组成,它们在您的个人计算机上作为线程运行。


2
投票

仅当 DataNode 也运行 NodeManager 时。 HDFS只处理数据。 YARN 处理计算。 YARN 的 ResourceManager 将计算资源分配给 NodeManager,出于显而易见的原因,NodeManager 与 DataNode 位于同一位置。

YARN 和 Spark 尝试将执行器移动到具有 Spark 正在处理的数据(数据局部性)的 DataNode/NodeManager,但这更多的是一种优化,而不是硬性要求。特别是由于大多数现代数据中心都有 10GB 以太网背板,因此将数据移动到备用节点的成本比以前通过网络移动数据的成本要低。


0
投票

如果您的 Spark 集群与

yarn
主节点一起运行,那么是的,您的 Spark 执行器将在 Hadoop 集群中存储数据的相同节点上运行。

事实上,将计算移至数据,而不是将数据移至计算,是提高分布式计算性能的关键方法,因为将序列化任务移至节点比将 GB 数据移至节点便宜得多。任务。


0
投票

有主节点和众多工作节点。
主节点有HDFS名称节点,它就像一个目录服务,维护文件所在数据块的位置。它还具有 YARN 资源管理器。这些应该配置为在崩溃时自动重新启动。
数据节点是独立的 JVM。在一个工作节点(虚拟机或物理机)上,您可以拥有一个或多个数据节点(用于高可用性等)。每个数据节点都是一个 JVM,不需要太多 CPU。
然后工作节点有节点管理器,它是 YARN 的一部分。这也是一个 JVM。每个节点一个就足够了。
最后,当您提交 Spark 应用程序时,它会被提交到 YARN 资源管理器。它创建一个应用程序主机,它是一个工作节点上的 JVM 和 YARN 组件。同样的 JVM 也可以兼作 Spark 集群管理器。节点管理器创建 Spark 执行器 JVM,它与在与 YARN Application Master 相同的进程中运行的 Spark 集群管理器进行协调。
这是我从这里复制的图像!

© www.soinside.com 2019 - 2024. All rights reserved.