所以我有一个非常基本的问题,关于如何最有效地使用本地火花环境以及远程服务器部署,尽管有关于此的所有各种信息,我仍然找不到任何这些信息非常清楚。
我在我的pom中需要我的IntelliJ环境和依赖项,以便能够在intellij中编译和运行我的本地测试。然后我想通过scp复制我打包的jar文件来测试并运行远程服务器,然后运行spark-submits。
但是我不需要在我的pom文件中使用maven的任何依赖项,因为spark-submit只会使用服务器上的软件,所以我真的只需要一个带有类的jar文件并保持它非常轻量级因为scp会是最好的。我不确定我是否误解了这一点,但现在我只需要弄清楚如何排除在包装过程中添加到jar中的任何依赖性。这样做的正确方法是什么?
更新: 所以我设法使用下面的方法创建一个有和没有依赖关系的jar,我可以在构建之后上传一个没有任何依赖关系的服务器,但是如何构建一个没有任何依赖关系的jar文件,而不是等待一个更大的jar包含所有内容反正我也不需要:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
答案 0 :(得分:0)
这里有两件事。
$strUsername = $_POST["txtUsername"];
依赖关系范围将允许您在本地工作并阻止打包任何服务器提供的库。
如果没有创建 uber 或着色的 jar,Maven不会打包外部库。
一个好的Spark POM的例子是provided by Databricks
另外值得一提的是,Maven copy local file to remote server using SSH
参见Maven Wagon SSH插件