如果我“运行为”scala程序,我的代码工作正常但是当我创建一个jar文件并运行它时会出现一些问题。
任何人都可以指导我如何解决问题。它是连接到kafka服务的火花流代码。
object Test {
def main(args: Array[String]): Unit = {
val batchInterval = 5
val conf = new SparkConf()
.setAppName("test")
.setMaster("local[2]")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
val sc = new SparkContext(conf)
sc.setLogLevel("ERROR")
val ssc = new StreamingContext(sc, Seconds(batchInterval))
ssc.receiverStream(
ReceiverFactory.createReceiver(
"host-name",
"end-point",
"stream-name",
classOf[JsonNode],
batchInterval
)
)
.map(_.getPayload.toString)
.foreachRDD(rdd => println("*** getting a count of RDD " + rdd.count()))
ssc.start()
ssc.awaitTermination
}
}
答案 0 :(得分:0)
我猜你在寻找一个肥胖的罐子。
在IDE中“运行为”将为执行的jvm进程设置类路径和其他一些选项。
胖jar会将所有类文件和依赖项打包到一个jar文件中,该文件能够用“java -jar FAT.jar”执行
我知道这个案子的两个好包装
SBT-Assembly - https://github.com/sbt/sbt-assembly
和
SBT Native Packager - https://github.com/sbt/sbt-native-packager
我希望能回答你的问题