java – Spark,Fat Jar的替代品

前端之家收集整理的这篇文章主要介绍了java – Spark,Fat Jar的替代品前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道至少有两种方法可以将我的依赖项放入Spark EMR作业中.一种是创建一个胖jar,另一种是使用–packages选项指定spark中提交的包.

拉链需要很长时间.这是正常的吗? ~10分钟.我们是否可能错误配置了它?

命令行选项很好,但容易出错.

还有其他选择吗?我喜欢它,如果有(已经存在)一种方法将依赖列表包含在带有gradle的jar中,然后让它下载它们.这可能吗?还有其他选择吗?

更新:我发布了部分答案.我在原始问题中没有说清楚的一件事是我还关心你何时遇到依赖冲突,因为你有不同版本的jar.

更新

感谢您关于减少依赖项数量或尽可能使用提供的响应.为了这个问题,我们假设我们拥有运行jar所需的最少数量的依赖项.

解决方法

如果必须通过某些应用程序在Spark启动器的帮助下启动spark作业,则可以使用Spark启动程序,您可以配置jar patah,无需为运行应用程序创建fat.jar.

使用fat-jar,你必须安装Java并启动Spark应用程序需要执行java -jar [your-fat-jar-here].如果您想要从Web应用程序启动应用程序,则很难自动化它.

使用SparkLauncher,您可以选择从其他应用程序启动Spark应用程序,例如上面的Web应用程序.它更容易.

import org.apache.spark.launcher.SparkLauncher

SparkLauncher extends App {

val spark = new SparkLauncher()
.setSparkHome("/home/knoldus/spark-1.4.0-bin-hadoop2.6")
.setAppResource("/home/knoldus/spark_launcher-assembly-1.0.jar")
.setMainClass("SparkApp")
.setMaster("local[*]")
.launch();
spark.waitFor();

}

码:
https://github.com/phalodi/Spark-launcher

这里

> setSparkHome(“/ home / knoldus / spark-1.4.0-bin-hadoop2.6”)用于设置内部使用的spark home来调用spark submit.
> .setAppResource(“/ home / knoldus / spark_launcher-assembly-1.0.jar”)用于指定我们的spark应用程序的jar.
> .setMainClass(“SparkApp”)火花程序的入口点,即驱动程序.
> .setMaster(“local [*]”)设置从这里开始的master的地址,现在我们在loacal机器上运行它.
> .launch()只是启动我们的spark应用程序

What are the benefits of SparkLauncher vs java -jar fat-jar?

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-SparkLauncher.html

https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/launcher/SparkLauncher.html

http://henningpetersen.com/post/22/running-apache-spark-jobs-from-applications

原文链接:https://www.f2er.com/java/239832.html

猜你在找的Java相关文章