apache-spark - 将 conf 文件添加到 Google Dataproc 中的类路径
问题描述
我们正在使用 HOCON 配置在 Scala 中构建 Spark 应用程序,该配置名为application.conf
.
如果我将 jar 添加application.conf
到我的 jar 文件并在 Google Dataproc 上开始工作,它会正常工作:
gcloud dataproc jobs submit spark \
--cluster <clustername> \
--jar=gs://<bucketname>/<filename>.jar \
--region=<myregion> \
-- \
<some options>
我不想将application.conf
jar 文件与我的 jar 文件捆绑在一起,而是单独提供,我无法正常工作。
尝试了不同的东西,即
- 指定 application.conf
--jars=gs://<bucketname>/application.conf
(应该根据这个答案工作) - 使用
--files=gs://<bucketname>/application.conf
- 与 1. + 2. 相同,应用程序 conf 在
/tmp/
集群的主实例上,然后指定本地文件file:///tmp/application.conf
- 使用(和执行者)定义
extraClassPath
火花--properties=spark.driver.extraClassPath=gs://<bucketname>/application.conf
使用所有这些选项我得到一个错误,它在配置中找不到密钥:
Exception in thread "main" com.typesafe.config.ConfigException$Missing: system properties: No configuration setting found for key 'xyz'
此错误通常意味着 HOCON 配置中有错误(密钥xyz
未在 HOCON 中定义)或application.conf
不在类路径中。由于在我的 jar 文件中使用完全相同的配置,因此我认为是后者。
是否有任何其他选项可以将其application.conf
放在类路径中?
解决方案
如果--jars
不按此答案中的建议工作,您可以尝试init action。首先将您的配置上传到 GCS,然后编写一个初始化操作将其下载到 VM,将其放入类路径中的文件夹或更新 spark-env.sh 以包含配置的路径。
推荐阅读
- javascript - 如何在存储过程中将容器名称作为 Azure cosmos DB 查询的参数传递?
- python-3.x - 如何使用 Python 中的 Plotly Express 在同一 y 轴上绘制多条线并放置 y 标签、垂直线
- html - Mathjax3 溢出引导列
- swift - 如何在另一个类中使用 addTarget 定位选择器
- java - 执行单元测试时spring boot应用程序是否需要连接到数据库
- reactjs - React Native 无法从不同组件的函数体内更新组件
- ms-access - 将 4 行合并为 1 行,所有行都具有唯一值
- r - 为每个类别分配颜色并在 R 中的 Leaflet Map 中显示点
- reactjs - ReactJS 向表中添加新行
- python - 比较两个字符串列表并在 Python 中打印不匹配项?