Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark can';t将alluxio.security.login.username添加到spark提交_Apache Spark_Spark Submit_Alluxio - Fatal编程技术网

Apache spark can';t将alluxio.security.login.username添加到spark提交

Apache spark can';t将alluxio.security.login.username添加到spark提交,apache-spark,spark-submit,alluxio,Apache Spark,Spark Submit,Alluxio,我有一个spark驱动程序,我正在尝试为它设置alluxio用户 我读了这篇文章:虽然有帮助,但没有一种方法能起到作用 我的环境: - Spark-2.2 - Alluxio-1.4 - packaged jar passed to spark-submit spark submit作业正在以root用户身份(在supervisor下)运行,而alluxio仅识别此用户 在这里,我尝试添加“-daluxio.security.login.username=alluxio”: spark-de

我有一个spark驱动程序,我正在尝试为它设置alluxio用户

我读了这篇文章:虽然有帮助,但没有一种方法能起到作用

我的环境:

- Spark-2.2
- Alluxio-1.4
- packaged jar passed to spark-submit
spark submit作业正在以root用户身份(在supervisor下)运行,而alluxio仅识别此用户

在这里,我尝试添加“-daluxio.security.login.username=alluxio”:

  • spark-defaults.conf中的spark.driver.extraJavaOptions
  • 在spark submit的命令行上(使用--conf)
  • 在我的jar应用程序的sparkservices conf文件中
  • 在我的jar应用程序中名为“alluxio site.properties”的新文件中
这些工作都没有为alluxio设置用户,尽管我可以很容易地在另一个(非spark)客户端应用程序中设置此属性,该应用程序也正在写入alluxio


是否有人能够在spark submit作业中应用此设置?

如果spark submit处于客户端模式,则应使用
--driver java options
而不是
--conf spark.driver.extraJavaOptions=…
,以便使用所需选项启动驱动程序JVM。因此,您的命令类似于:

/bin/spark提交--驱动程序java选项“-daluxio.security.login.username=alluxio”…

这将使用所需的Java选项启动驱动程序

如果Spark executors也需要该选项,您可以使用以下选项进行设置:


--conf“spark.executor.extraJavaOptions=-Dalluxio.security.login.username=alluxio”

您确定使用的是
spark 2.2
?您使用alluxio的确切目的是什么如果您读/写数据:我建议通过传递
alluxio-master
ex:
val ds=spark.read.parquet(s“alluxio://${master}:19998/${env_param}ds.parquet”)的
master url
spark.read.parquet(s“alluxio://${master}:19998/${env_param}ds.parquet”)中设置助手类。作为[dsSchema]
是的,我正在使用spark 2.2(快照)。我使用alluxio作为数据缓存机制。我已经有了一个helper类,它的功能与您提到的非常类似。问题是,当文件写入alluxio时,文件的所有者始终是提交spark作业的用户,而不是我添加到配置中的用户名。我的理解是,我应该能够通过alluxio.security.login.username配置项设置写入spark的文件的用户。出于某种原因,spark submit没有选择此配置项。我强烈怀疑(基于查看其他帖子),这里的问题与类路径以及该类路径如何与我提交给spark的jar文件交互有关。但我对这两个机构的内部运作没有很好的了解。我是否可以通过调试标志或其他方式获取更多有关spark submit如何解释jar的信息?是的,我认为你是对的,很可能是这样,如果你一直将其用作内部缓存机制禁用密码,那么你将避免拥挤,我已经构建了类似的解决方案,没有用户/通行证,并且它在prod中运行了一段时间,没有任何问题,通过vpn、安全组等从外部控制对集群的访问—感谢您的响应。通常,解决方案的第二个最好的方法是认识到你并不孤单:)