从2.0版开始,ApacheSpark与一个文件夹“jars”捆绑在一起,该文件夹中充满了。jar文件。显然,Maven会在发布以下文件时下载所有这些JAR:
mvn -e package
因为为了提交申请
spark-submit --class DataFetch target/DataFetch-1.0-SNAPSHOT.jar
DataFetch-1.0-SNAPSHOT。需要一个罐子。
所以,第一个问题很简单,我如何利用这些现有的罐子?。第二个问题是相关的,儿子,我第一次尝试用Maven下载罐子,我得到了以下输出:
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building "DataFetch" 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @DataFetch ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /root/sparkTests/scalaScripts/DataFetch/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ DataFetch - --
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ DataFetch ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory/root/sparkTests/scalaScripts/DataFetch/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ DataFetch ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ DataFetch ---
[INFO] No tests to run.
[INFO] Surefire report directory: /root/sparkTests/scalaScripts/DataFetch/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ DataFetch---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.294s
[INFO] Finished at: Wed Sep 28 17:41:29 PYT 2016
[INFO] Final Memory: 14M/71M
[INFO] ------------------------------------------------------------------------
这是我的pom。xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spark.pg</groupId>
<artifactId>DataFetch</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>"DataFetch"</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
</plugins>
</build>
</project>
如果需要更多信息,请毫不犹豫地询问。
我不确定我是否理解你的问题,但我试着回答。
基于火花捆绑您的应用程序的依赖留档:
创建组装JAR时,将Spark和Hadoop列为提供的依赖项;它们不需要捆绑,因为它们是由集群管理器在运行时提供的。
您可以将范围设置为maven pom中提供的范围。xml文件
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
<!-- add this scope -->
<scope>provided</scope>
</dependency>
我注意到的第二个想法是maven构建创建空JAR。
[WARNING] JAR will be empty - no content was marked for inclusion!
如果您有任何其他依赖项,您应该将这些依赖项打包到最终jar存档文件中。
您可以在pom.xml中执行如下操作并运行mvn包:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- package with project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>YOUR_MAIN_CLASS</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
maven日志应打印与建筑jar行:
[INFO] --- maven-assembly-plugin:2.4.1:single (make-assembly) @ dateUtils ---
[INFO] Building jar: path/target/APPLICATION_NAME-jar-with-dependencies.jar
在目标文件夹中的maven打包阶段之后,您应该会看到DataFetch-1.0-SNAPSHOTjar-with-dependencies。你可以用spark submit来装饰这个罐子
现在我们知道如何使用 Go 以及它的标准库了,但是 Go 的生态要比这大的多。当着手自己的 Go 项目时,最好先查找下是否有些存在的第三方的包或者项目能不能使用。大多数可以通过 go install 来进行安装。 Go Walker 支持根据包名在海量数据中查询。 目前已经有许多非常好的外部库,如: MySQL(GoMySQL), PostgreSQL(go-pgsql), MongoDB (mg
有人能给我一个解决方案吗?除了以下例外。我将创建一个多模块项目。 父项目名称为 ,子项目名称为 、 和 。 我需要有的war文件,其中应该包含、和。jar文件。 但是maven必须在父项目中打包。我怎样才能创建这样的项目?
问题内容: 我是Maven的新手(以及hibernate的人),但想同时学习两者。我从hibernate.org下载了一个示例项目,现在尝试使用maven进行编译,但出现以下错误: [INFO]扫描项目…下载:http : //repo1.maven.org/maven2/org/hibernate/hibernate- parent/3.5.2- Final / hibernate-parent
单模块 maven 项目打包 在单一模块的maven项目开发中,我们通常在 src/main/resources 编写我们的配置文件,因此,在 maven 构建的时候,我们需要添加如下配置: <resources> <resource> <directory>src/main/resources</directory> <includes>
问题内容: 当我运行“清理并生成”时,仅在文件夹位于文件的同一文件夹时,才会运行正在创建的文件。 因此,如果我将jar文件移动到桌面并将该文件夹保留在该文件夹中,则jar文件将给我一个例外。 我该如何解决这个问题? 问题答案: 如果将jars复制到源代码目录中,它们将位于您的最终jar中。但是,我不确定这是否会在100%的时间内有效。 java-forum上有一篇很棒的文章,内容如下: 除了少数情
当我试图在Windows的命令提示符中编译时,我有一个编译问题。我有如下目录设置我有我的. java文件在src目录(Main.java 当我尝试编译时,我会 但我明白 我不确定我会错在哪里。 我通过eclipse写了这个应用程序,它在eclipse中编译得很好,但是当我试图通过命令行来做它时,它不起作用。 此外,我碰巧发现eclipse已编译。类并尝试使用 但它还是给了我一个相关的错误