我想我还没有完全理解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应用程序提交到集群时,我预计会出现以下情况:
127.0.0.1:9042
然而,情况似乎并非如此。相反,Spark Master尝试与Cassandra对话(但失败了,因为Machine1主机上没有Cassandra节点)。
我误解了什么?它的工作方式有不同吗?实际上驱动程序是否从Cassandra中读取数据,并将数据分发到执行程序?但是,即使集群的总内存足够,我也无法读取大于机器1内存
的数据。
或者,驱动程序与Cassandra对话不是为了读取数据,而是为了找出如何对数据进行分区,并指示执行程序读取“他们的”部分数据?
驱动程序负责创建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 为了纠正这个问题,我