Spark:如何获取spark正在使用的配置位置?
Spark: How to obtain the location of configurations spark is using?
现在,我运行进入以下issue exactly。具体来说,spark-submit
正在尝试连接到位于 0.0.0.0/0.0.0.0
的 yarn.resourcemanager
。
我已经检查了上面堆栈溢出线程中描述的所有日志。他们似乎都是正确的。我还在 spark 配置目录顶部的默认设置文件中添加了 yarn.resourcemanager.address=...
行,导出了 YARN_CONF_DIR
以及该线程上列出的所有其他修复程序。
在评价最高的答案的评论底部,一位评论员指出,如果上述修复中的 none 起作用,则 spark 没有使用正确的配置。
此时,我很确定我的 spark 安装没有使用正确的配置(我没有安装它)。
如何确定 spark
使用了哪些配置,以及如何将它们更改为正确的配置? (或者也许我只需要重启机器?)
您可以尝试通过调试器或反射访问 org.apache.spark.sql.SparkSession 上的 creationSite 字段。然后您可以尝试找到 class 并将其放置在创建 spark 会话的代码中,然后您可以尝试找到如何调用 org.apache.spark.sql.SparkSession.Builder。
以spark-shell为例,我可以这样做:
scala> getClass.getClassLoader.getResource("yarn-site.xml")
res1: java.net.URL = file:/etc/spark2/conf.cloudera.spark2_on_yarn/yarn-conf/yarn-site.xml
...结果显示了我当前类路径中配置文件的确切解析位置。如果您的应用程序是基于 Java 的,则可以轻松将其翻译成 Java(几乎逐字)。
现在,我运行进入以下issue exactly。具体来说,spark-submit
正在尝试连接到位于 0.0.0.0/0.0.0.0
的 yarn.resourcemanager
。
我已经检查了上面堆栈溢出线程中描述的所有日志。他们似乎都是正确的。我还在 spark 配置目录顶部的默认设置文件中添加了 yarn.resourcemanager.address=...
行,导出了 YARN_CONF_DIR
以及该线程上列出的所有其他修复程序。
在评价最高的答案的评论底部,一位评论员指出,如果上述修复中的 none 起作用,则 spark 没有使用正确的配置。
此时,我很确定我的 spark 安装没有使用正确的配置(我没有安装它)。
如何确定 spark
使用了哪些配置,以及如何将它们更改为正确的配置? (或者也许我只需要重启机器?)
您可以尝试通过调试器或反射访问 org.apache.spark.sql.SparkSession 上的 creationSite 字段。然后您可以尝试找到 class 并将其放置在创建 spark 会话的代码中,然后您可以尝试找到如何调用 org.apache.spark.sql.SparkSession.Builder。
以spark-shell为例,我可以这样做:
scala> getClass.getClassLoader.getResource("yarn-site.xml")
res1: java.net.URL = file:/etc/spark2/conf.cloudera.spark2_on_yarn/yarn-conf/yarn-site.xml
...结果显示了我当前类路径中配置文件的确切解析位置。如果您的应用程序是基于 Java 的,则可以轻松将其翻译成 Java(几乎逐字)。