对 scala 的更改未出现在 jar 中
Changes to scala not appearing in jar
我正在使用 ehiggs terasort。
该项目由 Java 和 Scala 组成。我想编辑一些Scala。最初我只是将 println
添加到 com.github.ehiggs.spark.terasort.TeraGen.scala.
我做了更改并保存了文件。
然后我根据 README 运行 mvn install
。当我使用创建的 jar 时,我添加的附加 println
不会出现。
我还尝试了 运行ning mvn clean install
、mvn clean build
、mvn clean package
的变体,但没有成功。我什至删除了 jar 文件以确保生成新的。
有人知道这是为什么吗?
编辑
我添加的 println
是文件 TeraGen.scala.
在部分中:
println("===========================================================================")
println("===========================================================================")
println(s"Input size: $size")
println(s"Total number of records: $numRecords")
println(s"Number of output partitions: $parts")
println("Number of records/output partition: " + (numRecords / parts))
println("===========================================================================")
println("===========================================================================")
我改为:
println("===========================================================================")
println("===========================================================================")
println("===========================================================================")
println(s"Input size: $size")
println(s"Total number of records: $numRecords")
println(s"Number of output partitions: $parts")
println("Number of records/output partition: " + (numRecords / parts))
println("===========================================================================")
println("===========================================================================")
虽然第三个 println
从未出现。
更新
我在不同的服务器上测试了这个 jar,它按预期工作,但它仍然不能在我的本地机器上工作。 Spark 是否有可能以某种方式缓存作业?
作为一条额外的信息。如果我在我的 Mac 上编辑 scala 文件并构建 jar 并在我的本地计算机上 运行 它不会出现更改。如果我然后将 jar scp 到远程服务器并 运行 它会出现更改。由此我确定更改已包含在 jar 中,但是当我在本地计算机上 运行 时,某些东西阻止它出现。
好的,我弄清楚了。
我尝试 运行(其中包含我的更改)的新 jar 正在从一个位置获取 运行。我注意到我的 spark/jars 文件夹中有一个较早版本的 jar,所以我删除了它并重新启动了 Spark。然后拿起新罐子。
仅供参考,我只是在删除新 jar 并再次 运行 脚本时才注意到这一点。尽管我收到一个错误,指出找不到 jar,但我可以从 jab 日志中看到某个版本的 jar 正在执行,所以我在硬盘驱动器上搜索了 jar 名称。
我正在使用 ehiggs terasort。
该项目由 Java 和 Scala 组成。我想编辑一些Scala。最初我只是将 println
添加到 com.github.ehiggs.spark.terasort.TeraGen.scala.
我做了更改并保存了文件。
然后我根据 README 运行 mvn install
。当我使用创建的 jar 时,我添加的附加 println
不会出现。
我还尝试了 运行ning mvn clean install
、mvn clean build
、mvn clean package
的变体,但没有成功。我什至删除了 jar 文件以确保生成新的。
有人知道这是为什么吗?
编辑
我添加的 println
是文件 TeraGen.scala.
在部分中:
println("===========================================================================")
println("===========================================================================")
println(s"Input size: $size")
println(s"Total number of records: $numRecords")
println(s"Number of output partitions: $parts")
println("Number of records/output partition: " + (numRecords / parts))
println("===========================================================================")
println("===========================================================================")
我改为:
println("===========================================================================")
println("===========================================================================")
println("===========================================================================")
println(s"Input size: $size")
println(s"Total number of records: $numRecords")
println(s"Number of output partitions: $parts")
println("Number of records/output partition: " + (numRecords / parts))
println("===========================================================================")
println("===========================================================================")
虽然第三个 println
从未出现。
更新 我在不同的服务器上测试了这个 jar,它按预期工作,但它仍然不能在我的本地机器上工作。 Spark 是否有可能以某种方式缓存作业?
作为一条额外的信息。如果我在我的 Mac 上编辑 scala 文件并构建 jar 并在我的本地计算机上 运行 它不会出现更改。如果我然后将 jar scp 到远程服务器并 运行 它会出现更改。由此我确定更改已包含在 jar 中,但是当我在本地计算机上 运行 时,某些东西阻止它出现。
好的,我弄清楚了。
我尝试 运行(其中包含我的更改)的新 jar 正在从一个位置获取 运行。我注意到我的 spark/jars 文件夹中有一个较早版本的 jar,所以我删除了它并重新启动了 Spark。然后拿起新罐子。
仅供参考,我只是在删除新 jar 并再次 运行 脚本时才注意到这一点。尽管我收到一个错误,指出找不到 jar,但我可以从 jab 日志中看到某个版本的 jar 正在执行,所以我在硬盘驱动器上搜索了 jar 名称。