繁体   English   中英

从本地IDE运行Spark

[英]Running Spark from a local IDE

我花了一些时间来尝试在本地运行复杂的spark应用程序,以便更快地进行测试(而不必打包并部署到集群)。

一些背景:

  • 此spark应用程序与Datastax Enterprise版本的Cassandra及其分布式文件系统连接,因此需要提供一些显式的jar(在Maven中不可用)
  • 这些jar可以在我的本地计算机上使用,并且为了“奶酪”,我尝试将它们放在SPARK_HOME / jars中,以便将它们自动添加到类路径中。
  • 我试图通过将所需的配置设置放入SPARK_HOME / conf下的spark-defaults.conf中来执行类似的操作
  • 在构建此应用程序时,我们不构建uber jar,而是使用--jars在服务器上进行spark-submit

我面临的问题是,当我通过IDE运行Spark Application时,似乎没有从SPARK_HOME控制器(配置或jar)中拾取任何其他项。 我花了几个小时试图使配置项起作用,并最终在启动Spark会话之前在我的测试用例中将它们设置为System.property值,以使Spark能够接收它们,因此可以忽略配置设置。

但是,我不知道如何为供应商特定的jar文件重现此内容。 有没有一种简单的方法可以模拟spark-submit的--jars行为,并使用此jar值在首页进行我的spark会话设置? 注意:我在代码中使用以下命令来启动Spark会话:

SparkSession.builder().config(conf).getOrCreate()

其他信息,以帮助您:

  • 我在SPARK_HOME中本地拥有的Spark版本与我的代码使用Maven编译的版本相同。
  • 我问了另一个与此配置相关的问题: 加载Spark Config以测试Spark应用程序
  • 当我在应用程序中打印SPARK_HOME环境变量时,得到的是正确的SPARK_HOME值,因此我不确定为什么从这里都没有选择配置文件或jar文件。 从我的IDE运行应用程序时,是否有可能没有选择SPARK_HOME环境变量并使用所有默认值?

通过将“ spark.jars”作为键和以逗号分隔的jar路径列表进行传递.config(key, value)在构建SparkSession时利用.config(key, value) ,如下所示:

SparkSession.builder().config("spark.jars", "/path/jar1.jar, /path/jar2.jar").config(conf).getOrCreate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM