maven学习笔记:命令行模式创建scala_spark项目并运行程序
来源:互联网 发布:金数据 - 登录 编辑:程序博客网 时间:2024/06/16 01:46
新建项目
使用maven新建一个项目:
mvn archetype:generate
键入组ID与项目名称:
在源码文件夹下新建一个scala文件:
touch ~/projects/scalaDemo/src/main/java/daya/scalaDemo.scala
代码如下:
import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp { def main(args: Array[String]) { val logFile = "/home/daya/test.txt" 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)) }}
在项目文件夹下新建target/classses路径:
mkdir -p target/classes
使用scala编译运行
编译命令:
scalac -d target/classes -classpath target/classes:/usr/DevProgram/spark-2.2.0-bin-hadoop2.7/jars/* src/main/java/daya/scalaDemo.scala //注:-d表示编译输出目录,*表所有的jar包,因为不知道到底依赖哪一个确定的jar包
运行编译生成的class文件:
java -cp target/classes/:/usr/DevProgram/spark-2.2.0-bin-hadoop2.7/jars/* -Dspark.master=local SimpleApp
(把jars下的所有jar包都加入类路径是因为不知道scala.collection.Seq在哪个jar包下,不得已为之)
报错信息如下,暂未解决:
ClassNotFoundException: scala.runtime.LambdaDeserialize
猜测可能是版本问题,(预编译版)spark目录下的scala包名为2.11.8:
而使用的scala版本为2.12.3,更改scala版本试一下。
艹他妈果然是版本问题,换2.11.8就解决了,输出信息如下,文本不含字母a或b:
使用maven编译运行
编辑项目下的pom.xml文件:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.8</version> </dependency>
<build> <sourceDirectory>src/main/scala</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.1</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> </plugin> </plugins> </build>
(注意:maven exec插件版本选择1.2.1,最新的1.5.0在执行时异常报错)
由于是scala_spark项目,注意 把路径改为scala,项目层级结构如下图所示:
maven编译:
mvn scala:compile
maven执行:
mvn exec:java -Dexec.mainClass="SimpleApp" -Dexec.args="/home/daya/test.txt" -Dspark.master=local
输出信息:
阅读全文
0 0
- maven学习笔记:命令行模式创建scala_spark项目并运行程序
- maven学习笔记:命令行模式创建java_spark项目并运行示例程序
- maven学习笔记:使用eclipse的maven插件创建scala_spark项目
- 创建并运行maven项目
- 创建并运行maven项目
- 创建并运行maven项目
- 创建并运行maven项目
- 命令行下面创建Rhodes程序项目Hello World,编译并启动BlackBerry模拟器运行程序
- Maven 创建java web项目并运行
- 命令行创建Maven项目
- maven 命令行创建项目
- 学习Maven---通过Shell命令行创建Maven项目
- 命令行模式下mvn create创建maven项目报错
- 在IDEA中创建Maven的Web项目并运行
- IntelliJ IDEA创建和配置Maven项目并运行
- eclise下创建maven web项目并运行
- Maven学习笔记(六)-使用Eclipse创建Maven WEB项目以及运行项目的几种方式
- Maven命令行来创建项目
- Android中解析不规则json的理解(基于Gson)
- navigationview的样式设置
- 记录一下关于编码的问题
- SequoiaDB巨杉数据库大对象块存储原理与应用
- PAT甲级1002. A+B for Polynomials (25)
- maven学习笔记:命令行模式创建scala_spark项目并运行程序
- iframe 高度自适应,并且子页面的高度不断变化
- Java处理csv文件
- F: 火柴棒等式
- (六)Spring Boot整合mybtis
- 安卓Socket使用之服务器端
- 机器学习基础知识
- JSP技术
- 7-4 求矩阵各行元素之和