我在SBT中有一个独立的应用程序。我的数据存储在HDFS(hadoop文件系统)上。如何获取jar文件以在另一台机器上运行我的工作。
我的项目目录如下:
/MyProject
/target
/scala-2.11
/MyApp_2.11-1.0.jar
/src
/main
/scala
答案 0 :(得分:3)
如果您没有任何依赖关系,那么运行$SPARK_HOME/bin/spark-submit --name "an-app" my-app.jar
会为您的所有代码创建一个jar。
然后您可以将Spark应用程序运行为:
sbt assembly
如果您的项目具有外部依赖性(除了spark本身;如果它只是Spark或其任何依赖项,那么上述方法仍然有效),那么您有两个选择:
1)使用sbt assembly插件创建一个包含整个类路径的超级jar。运行$SPARK_HOME/bin/spark-submit --name "an-app" --packages "joda-time:joda-time:2.9.6" my-app.jar
将创建另一个jar,您可以像以前一样使用它。
2)如果你只有很少的简单依赖(比如joda-time),那么你可以简单地将它们包含在你的spark-submit脚本中。
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: jenkins-master
spec:
replicas: 1
template:
metadata:
name: jenkins-master
labels:
name: jenkins-master
spec:
containers:
- name: jenkins-master
image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0
imagePullPolicy: Always
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 20
timeoutSeconds: 5
ports:
- name: jenkins-web
containerPort: 8080
- name: jenkins-agent
containerPort: 50000
答案 1 :(得分:1)
与Java不同,在Scala中,文件的包名称不必与目录名称匹配。事实上,对于像这样的简单测试, 如果您愿意,可以将此文件放在SBT项目的根目录中。
从项目的根目录,您可以编译项目:
$ sbt编译 运行项目:
$ sbt run 打包项目:
$ sbt package
以下链接了解: http://alvinalexander.com/scala/sbt-how-to-compile-run-package-scala-project