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(); } 码: 这里 > setSparkHome(“/ home / knoldus / spark-1.4.0-bin-hadoop2.6”)用于设置内部使用的spark home来调用spark submit. 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |