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

如何将local.jar文件传递到集群

邴奇逸
2023-03-14

我有一个集群,有两个工人和一个主人。为了启动master和workers,我在master计算机中使用sbin/start-master.shsbin/start-slaves.sh。然后,master UI向我显示奴隶还活着(所以,到目前为止一切正常)。当我想使用spark-submit时,问题就出现了。

我在本地计算机中执行以下命令:

但是会弹出以下错误:error clientendpoint:来自集群的异常为:java.nio.file.nosuchfileexception://home/user/example.jar

我一直在研究stack overflow和Spark的文档,似乎应该将spark-submit命令的application-jar指定为“绑定jar的路径,包括应用程序和所有依赖项。URL必须在集群中全局可见,例如,所有节点上都存在的hdfs://path或file://path。”(如其所示https://spark.apache.org/docs/latest/submitting-applications.html)。

我的问题是:如何将我的.jar设置为集群内全局可见?这里有一个类似的问题,Spark独立集群无法读取本地文件系统中的文件,但解决方案对我不起作用。

另外,我在主计算机中使用sbin/start-master.sh初始化集群,但在本地计算机中执行spark-submit是否做错了什么?我在master的终端中初始化master,因为我在Spark的文档中读到过,但这可能与问题有关。来自Spark的文档:

一旦设置了这个文件,就可以根据Hadoop的部署脚本使用以下shell脚本启动或停止集群,这些脚本可以在spark_home/sbin:[...]中获得请注意,这些脚本必须在要运行Spark master的计算机上执行,而不是在本地计算机上执行。

非常感谢

共有1个答案

栾弘新
2023-03-14

@Meisan,您的spark-submit命令缺少两件事。

  • 您的jar应该添加标志--jar
  • 包含驱动程序代码的文件,即主函数。

现在,如果使用scala或python,您没有指定任何位置,但简而言之,您的命令如下所示:

此外,当您使用文档化标志时,spark负责将所需的文件和JAR发送给执行器。如果要省略--driver-class-path标志,可以将环境变量SPARK_CLASSPATH设置为放置所有JAR的path。

 类似资料:
  • 问题内容: 我有一个主类,期望使用-D选项传递某些属性。我可以通过将其作为VM选项发送来在IDE中访问它。 我使用Maven并在尝试以下操作时将此应用程序打包到jar文件中: 要么 没有获取环境系统属性。 关于发生了什么的任何指示? 问题答案: 在。之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数并传递给in 。喜欢,

  • 问题内容: subprocess.call([“/home/myuser/run.sh”, “/tmp/ad_xml”, “/tmp/video_xml”]) 现在,我有了运行的脚本。当我运行它并到达此行时,它开始打印内容,因为run.sh中有打印内容。 如何将其也管道传输到文本文件?(如果可能,还可以打印) 问题答案: 如果要将输出写入文件,可以使用stdout -argument of 。 它

  • 问题内容: 通常,我会使用一个JavaScript文件,该文件需要在网页中定义某些变量。 所以代码是这样的: 但是我想做的是: 我尝试了不同的方法,最好的方法是解析查询字符串,如下所示: 然后搜索我的价值观。 我想知道是否还有另一种方法可以执行此操作而无需构建函数来解析我的字符串。 你们都知道其他方法吗? 问题答案: 如果可能,我建议不要使用全局变量。使用名称空间和OOP将参数传递给对象。 此代码

  • 我在C中有一个函数,我需要在Java中创建一个包装器。该函数期望FILE类型的输入参数(来自标准输入输出)。我不相信Swig可以在Java中自动适应一个接口,而不需要在Swig接口文件中进行一些手动工程-我可能错了。 这是我所拥有的 C(标题h): 我尝试过编译,但结果是创建了Swig指针类型:SWIGTYPE_p_FILE,这无助于我将FILE type参数从Java传递到C。

  • 问题内容: 我在未传递到javascript文件的玉模板文件(index.jade)中声明的变量(config)遇到问题,这使我的javascript崩溃了。这是文件(views / index.jade): 这是我的app.js(服务器端)的一部分: 这是我的javascript文件崩溃的一部分(public / javascripts / app.js): 我正在本地主机(我自己的机器)上的开

  • 问题内容: 我试图编写一个程序来通过args读取文本文件,但是当我运行它时,它总是说找不到该文件,即使我将其放置在与我正在运行的main.java相同的文件夹中。有谁知道我的问题的解决方案或更好的阅读文本文件的方法? 问题答案: 请勿在中使用相对路径。 它将变成相对于当前工作目录的,这取决于您如何运行应用程序,而该方法又是无法从应用程序内部进行控制的。这只会导致可移植性麻烦。如果从Eclipse内