每日随笔——使用Maven对Scala独立应用程序进行编译打包
通过之前的博客,我们已经下载好maven并配置好环境,且能实现
(一)使用sbt对Scala独立应用程序进行编译打包
(二)使用Maven对Java独立应用程序进行编译打包
现在进行最后一步:使用Maven对Scala独立应用程序进行编译打包
Java应用程序代码
cd /export/server
mkdir -p sparkapp3/src/main/scala
在 ./sparkapp3/src/main/scala下建立一个名为 SimpleApp.java 的文件(vim ./sparkapp3/src/main/scala/SimpleApp.java),添加代码如下:
- import org.apache.spark.SparkContext
- import org.apache.spark.SparkContext._
- import org.apache.spark.SparkConf
- object SimpleApp {
- def main(args: Array[String]) {
- val logFile = "file:///export/server/spark/README.md" // Should be some file on your system
- val conf = new SparkConf().setAppName("Simple Application")
- val sc = new SparkContext(conf)
- val logData = sc.textFile(logFile, 2).cache()
- val numAs = logData.filter(line => line.contains("a")).count()
- val numBs = logData.filter(line => line.contains("b")).count()
- println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
- }
- }
该程序依赖Spark Java API,因此我们需要通过Maven进行编译打包。在./sparkapp3目录中新建文件pom.xml,命令如下:
cd /export/server/sparkapp3
vim pom.xml
在pom.xml中添加相关依赖
project>
<groupId>cn.edu.xmu</groupId>
<artifactId>simple-project</artifactId>
<modelVersion>4.0.0</modelVersion>
<name>Simple Project</name>
<packaging>jar</packaging>
<version>1.0</version>
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
<dependencies>
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.4.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>2.12.17</scalaVersion>
<args>
<arg>-target:jvm-1.8</arg>
</args>
</configuration>
</plugin>
</plugins>
</build>
</project>
打包
cd sparkapp3 #一定把这个目录设置为当前目录
/export/server/maven/bin/mvn package

通过 spark-submit 运行程序
/export/server/spark/bin/spark-submit --class "SimpleApp" /export/server/sparkapp3/target/simple-project-1.0.jar 2>&1 | grep "Lines with a:"


浙公网安备 33010602011771号