scala与spark的运行命令
虽然scala与spark都源于java,但他们又有自己的语言和运行方式。
首先我们得有这两的运行环境,配置环境变量:
export HADOOP_HOME=/Users/chengzhong/Downloads/hadoop-3.3.4 export SPARK_HOME=/Users/chengzhong/work_tool_install/spark-3.0.1-bin-hadoop3.2 export PATH=$PATH:$SPARK_HOME/bin export SCALA_HOME=/Users/chengzhong/work_tool_install/scala-2.11.12 export PATH=$PATH:$SCALA_HOME/bin
先说scala(2.11),他的main函数是这样:
object MyApp { def main(args : Array[String]) :Unit = { println("Hello Scala!") ; } }
maven的pom.xml依赖是这样:
<properties> <scala.version>2.11.12</scala.version> </properties> <dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.specs</groupId> <artifactId>specs</artifactId> <version>1.2.5</version> <scope>test</scope> </dependency> </dependencies> <build> <sourceDirectory>src/main/scala</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaVersion>${scala.version}</scalaVersion> <args> <arg>-target:jvm-1.8</arg> </args> </configuration> </plugin> </plugins> </build>
<repositories> <repository> <id>scala-tools.org</id> <name>Scala-Tools Maven2 Repository</name> <url>http://scala-tools.org/repo-releases</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>scala-tools.org</id> <name>Scala-Tools Maven2 Repository</name> <url>http://scala-tools.org/repo-releases</url> </pluginRepository> </pluginRepositories>
运行命令:
scala -cp target/scala-1.0-SNAPSHOT.jar net.highersoft.MyApp
而spark一般用scala语言,maven pom.xml依赖为:
<properties> <!-- Maven settings --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- Dependency versions --> <java.version>1.8</java.version> <!-- Match this with what Spark version wants --> <scala.minor.version>2.11</scala.minor.version> <scala.complete.version>${scala.minor.version}.8</scala.complete.version> <hadoop.version>2.7.5</hadoop.version> <spark.version>2.2.1</spark.version> </properties> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_${scala.minor.version}</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_${scala.minor.version}</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>com.github.scopt</groupId> <artifactId>scopt_${scala.minor.version}</artifactId> <version>3.3.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <optimize>true</optimize> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <source>${java.version}</source> <target>${java.version}</target> <compilerArgs> <arg>-Xlint:all,-serial,-try,-options</arg> <arg>-Werror</arg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>compile-scala</id> <phase>compile</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile-scala</id> <phase>test-compile</phase> <goals> <goal>add-source</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaVersion>${scala.complete.version}</scalaVersion> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
而spark的运行命令,是这样:
spark-submit --class com.xx.ExplicitRecommender target/spark-xx-example-1.0-SNAPSHOT-jar-with-dependencies.jar
相关阅读
评论:
↓ 广告开始-头部带绿为生活 ↓
↑ 广告结束-尾部支持多点击 ↑