hdfs中的数据节点是否与spark集群中的executor节点相同?

erhoui1w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(414)

我正在学习apachespark和hdfs。虽然我对一件事感到困惑,但我对这两件事基本上都理解。我的问题是:hdfs中的数据节点是否与spark集群中的executor节点相同?换言之,hdfs中的节点是对其包含的数据进行操作,还是来自hdfs中的datanodes的数据发送到spark集群中的executors节点,在spark集群中对数据进行操作?如果你想让我澄清什么,请告诉我!任何帮助都将不胜感激!
谢谢您,
泰勒

klh5stk1

klh5stk11#

仅当datanode同时运行nodemanager时。hdfs只处理数据。Yarn把手。yarn的resourcemanager将计算资源分配给nodemanager,由于明显的原因,nodemanager与datanodes位于同一位置。
yarn和spark试图将执行器移动到具有数据spark is processing(数据局部性)的datanodes/nodemanager,但这更像是一个优化,而不是一个硬性要求。尤其是由于大多数现代数据中心都有10gb以太网背板,因此将数据移动到备用节点的成本比以前通过网络移动数据的成本更低。

628mspwn

628mspwn2#

如果你的星火团运行的是 yarn ,那么是的,您的spark执行器将在hadoop集群中存储数据的相同节点上运行。
事实上,在分布式计算中,将计算移到数据而不是将数据移到计算是提高性能的关键方法,因为将串行任务移到节点比将gbs数据移到任务便宜得多。

lhcgjxsq

lhcgjxsq3#

我总是先从独立的Angular 来思考这些概念,然后再从集群的Angular 来思考。
考虑到一台机器(您还将在本地模式下运行spark), DataNode 以及 NameNode 只是支持hdfs抽象设计(即 NameNode 存储文件树、文件元数据等,同时 DataNode 存储实际数据块)。 driver 以及 executors spark中的概念,在本地模式下,spark应用程序由 driver 过程和一套 executor 进程,该进程在单个计算机上作为线程运行。

相关问题