Tôi biết đây là một câu hỏi tầm thường, nhưng tôi không thể tìm thấy câu trả lời trên internet.
Tôi đang cố gắng chạy một lớp Java với main
hàm có đối số chương trình ( String[] args
).
Tuy nhiên, khi tôi gửi công việc bằng cách sử dụng spark-submit
và chuyển các đối số chương trình như tôi sẽ làm với
java -cp <some jar>.jar <Some class name> <arg1> <arg2>
nó không đọc arg
s.
Lệnh tôi đã thử chạy là
bin/spark-submit analytics-package.jar --class full.package.name.ClassName 1234 someargument someArgument
và điều này mang lại
Error: No main class set in JAR; please specify one with --class
và khi tôi thử:
bin/spark-submit --class full.package.name.ClassName 1234 someargument someArgument analytics-package.jar
tôi có
Warning: Local jar /mnt/disk1/spark/1 does not exist, skipping.
java.lang.ClassNotFoundException: com.relcy.analytics.query.QueryAnalytics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.spark.util.Utils$.classForName(Utils.scala:176)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:693)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:183)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:208)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:122)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Làm cách nào để chuyển những đối số này? Chúng thay đổi thường xuyên trong mỗi lần thực hiện công việc và chúng cần được chuyển dưới dạng đối số.