当前位置: 首页 > 知识库问答 >
问题:

Apache Spark:驱动程序(而不仅仅是执行程序)试图连接到Cassandra

公良高刚
2023-03-14

我想我还没有完全理解Spark是如何工作的。

Machine 1      Machine 2        Machine 3        Machine 4
Spark Master   Spark Worker     Spark Worker     Spark Worker
               Cassandra node   Cassandra node   Cassandra node

这背后的原因是我想优化数据的局部性--当在集群上运行我的Spark应用程序时,每个工作人员只需要与其本地的Cassandra节点进行对话。

现在,当通过从机器1(Spark Master)运行spark-submit--deploy-mode client--master Spark://machine-1将Spark应用程序提交到集群时,我预计会出现以下情况:

  • 在Spark主程序上启动驱动程序实例
  • 驾驶员在每个火花工人上启动一个执行器
  • 驱动程序将我的应用程序分发给每个执行者
  • 我的应用程序运行在每个Executor上,并从那里通过127.0.0.1:9042
  • 与Cassandra对话

然而,情况似乎并非如此。相反,Spark Master尝试与Cassandra对话(但失败了,因为Machine1主机上没有Cassandra节点)。

我误解了什么?它的工作方式有不同吗?实际上驱动程序是否从Cassandra中读取数据,并将数据分发到执行程序?但是,即使集群的总内存足够,我也无法读取大于机器1内存的数据。

或者,驱动程序与Cassandra对话不是为了读取数据,而是为了找出如何对数据进行分区,并指示执行程序读取“他们的”部分数据?

共有1个答案

羿经武
2023-03-14

驱动程序负责创建SparkContext、SQLContext,并在工作节点上调度任务。它包括创建逻辑和物理计划以及应用优化。要做到这一点,它必须能够访问数据源模式和可能的其他信息,如模式或不同的统计信息。实现细节因源而异,但一般来说,这意味着数据应该在所有节点上都可以访问,包括应用程序主节点。

在一天结束时,你的期望几乎是正确的。数据块是在每个worker上单独获取的,而不需要经过驱动程序,但是驱动程序必须能够连接到Cassandra来获取所需的元数据。

 类似资料:
  • 我有我的chromedriver和chromedriver。项目文件夹中的exe权限。我正在用这段代码创建驱动程序的实例。 在本地windows上也可以(如果我们将“chromedriver”更改为“chromedriver.exe”),但当我在CentOS上运行它时,会收到错误消息:“驱动程序不可执行”。

  • 问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O

  • 我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection

  • 最近,我与一位经验丰富的建筑师进行了讨论。讨论围绕在Web场中运行的基于Web的多租户应用程序的理想架构和设计展开。该应用程序的唯一任务是允许用户上传“n个”Excel文件,系统正在处理这些文件以生成非常复杂的报告。处理这些文件需要很长时间(每个文件一个小时,让我们把它当作一个限制)。因此,用户在上传后会等待来自系统的通知来下载生成的报告。 乍一看,这个需求看起来很简单,但是期望是应用程序必须10

  • 问题内容: 我是Mac OSX的新手。从git下载了我的Robotframework(Selenium&Java)项目,并尝试在本地执行代码,其中收到以下错误。 套件安装失败:IllegalStateException:驱动程序不可执行:/ Users / roja / Documents / GitHub / testautomation / chromedrivers / chromedriv

  • 我是Mac OSX的新手。从git下载了我的Robotframework(Selenium&Java)项目,并试图在本地执行代码,其中我收到了以下错误。 套件安装失败:IllegalStateException:驱动程序不可执行:/users/roja/documents/github/testautomation/chromedrivers/chromedriver_osx 为了纠正这个问题,我