在scala中创建项目jar
我在SBT有一个独立的应用程序。我的数据存储在hadoop文件系统的HDFS上。我如何获得一个jar文件在另一台机器上运行我的工作 我的项目目录如下:在scala中创建项目jar,scala,apache-spark,sbt,Scala,Apache Spark,Sbt,我在SBT有一个独立的应用程序。我的数据存储在hadoop文件系统的HDFS上。我如何获得一个jar文件在另一台机器上运行我的工作 我的项目目录如下: /MyProject /target /scala-2.11 /MyApp_2.11-1.0.jar /src /main /scala 如果您没有任何依赖项,那么运行sbt包将创建一个jar,它将保存所有代码 然后,您可以通过以下方式运行Spark
/MyProject
/target
/scala-2.11
/MyApp_2.11-1.0.jar
/src
/main
/scala
如果您没有任何依赖项,那么运行sbt包将创建一个jar,它将保存所有代码 然后,您可以通过以下方式运行Spark应用程序:
$SPARK_HOME/bin/spark-submit --name "an-app" my-app.jar
如果您的项目具有spark本身以外的外部依赖项;如果只是Spark或它的任何依赖项,那么上述方法仍然有效,那么您有两个选择:
1使用sbt插件创建一个包含整个类路径的超级jar。运行sbt assembly将创建另一个jar,您可以用与前面相同的方式使用它
2如果您只有很少几个简单的依赖项,比如just joda time,那么您可以简单地将它们包含到spark submit脚本中
$SPARK_HOME/bin/spark-submit --name "an-app" --packages "joda-time:joda-time:2.9.6" my-app.jar
如果您没有任何依赖项,那么运行sbt包将创建一个jar,它将保存所有代码 然后,您可以通过以下方式运行Spark应用程序:
$SPARK_HOME/bin/spark-submit --name "an-app" my-app.jar
如果您的项目具有spark本身以外的外部依赖项;如果只是Spark或它的任何依赖项,那么上述方法仍然有效,那么您有两个选择:
1使用sbt插件创建一个包含整个类路径的超级jar。运行sbt assembly将创建另一个jar,您可以用与前面相同的方式使用它
2如果您只有很少几个简单的依赖项,比如just joda time,那么您可以简单地将它们包含到spark submit脚本中
$SPARK_HOME/bin/spark-submit --name "an-app" --packages "joda-time:joda-time:2.9.6" my-app.jar
与Java不同,在Scala中,文件的包名不必与目录名匹配。事实上,对于这样的简单测试, 如果愿意,可以将此文件放在SBT项目的根目录中 从项目的根目录,可以编译项目: $sbt编译 运行项目: $sbt运行 将项目打包: $sbt套餐 以下是要理解的链接:
与Java不同,在Scala中,文件的包名不必与目录名匹配。事实上,对于这样的简单测试, 如果愿意,可以将此文件放在SBT项目的根目录中 从项目的根目录,可以编译项目: $sbt编译 运行项目: $sbt运行 将项目打包: $sbt套餐 以下是要理解的链接:
我对spark core和spark mllib有两个依赖项,我运行的是:spark submit-class A app-master local[4]target/scala-2.11/myproject_2.11-1.0.jar我想获取我的jar文件或如何将其复制到本地光盘中。你刚才说了jar在哪里。为什么你在复制它时遇到困难?我很困惑…我对spark core和spark mllib有两个依赖项,我运行的是:spark submit-class A app-master local[4]target/scala-2.11/myproject_2.11-1.0.jar我想获取我的jar文件或如何将其复制到本地光盘中。你刚才说了jar在哪里。为什么你在复制它时遇到困难?我很困惑。。。