一个 jar 文件中有许多 spark 作业

Many spark jobs in one jar file

我正在使用 Spark 作业服务器来处理作业管理。我需要创建 10 个作业,例如。我可以为它创建 10 个单独的 jar,然后用下一种方式调用它:

 curl -d "" 'job-server-host:8090/jobs?appName=my_job_number_1&classPath=com.spark.jobs.MainClass'

 curl -d "" 'job-server-host:8090/jobs?appName=my_job_number_2&classPath=com.spark.jobs.MainClass'

...

或者我只能用 10 个作业创建一个 jar 类:

 curl -d "" 'job-server-host:8090/jobs?appName=my_alone_job&classPath=com.spark.jobs.Job1'

 curl -d "" 'job-server-host:8090/jobs?appName=my_alone_job&classPath=com.spark.jobs.Job2'
...

哪种变体更可取,为什么?

使用 spark-job-server 的主要动机是 Spark 作业管理和上下文管理。

这完全取决于您的要求。如果您认为这些工作是相关的并且可以分组,您可以将所有这些放在一个 jar 中或为相关工作创建不同的 2 个包, 而不是创建单独的 jar 并为这些作业使用相同的应用程序和上下文。