首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将多个类型的配置文件传递给纱线群集模式应用程序

将多个类型的配置文件传递给纱线群集模式应用程序
EN

Stack Overflow用户
提问于 2019-05-02 15:50:20
回答 1查看 443关注 0票数 1

我试图在我的星火应用程序中使用多个(通过包含) Typesafe配置文件,这是我在集群模式下提交给纱线队列的尝试。我基本上有两个配置文件,文件布局如下:

  1. env-common.properties
  2. application-txn.conf (此文件使用"include“引用上述文件)

以上两个文件都在我的application.jar外部,所以我使用“--文件”(见下文)将它们传递给纱线。

我正在使用Typesafe配置库来解析我的"application-main.conf“,在这个主conf中,我试图通过替换使用env.properties文件中的一个属性,但是变量名没有得到解析:(我不知道为什么。

env.properties

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
txn.hdfs.fs.home=hdfs://dev/1234/data

申请-txn.conf:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# application-txn.conf
include required(file("env.properties"))

app {
  raw-data-location = "${txn.hdfs.fs.home}/input/txn-raw"
}

火花应用程序代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//propFile in the below block maps to "application-txn.conf" from the app's main method

def main {
  val config = loadConfig("application-txn.conf")
  val spark = SparkSession.builkder.getOrCreate()

  //Code fails here:
  val inputDF = spark.read.parquet(config.getString("app.raw-data-location"))
}

def loadConf(propFile:String): Config = {
   ConfigFactory.load()
   val cnf = ConfigFactory.parseResources(propFile)
   cnf.resolve()
}

火花提交代码(从shell脚本调用):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spark-submit --class com.nic.cage.app.Transaction \
--master yarn \
--queue QUEUE_1 \
--deploy-mode cluster \
--name MyTestApp \
--files application-txn.conf,env.properties \
--jars #Typesafe config 1.3.3 and my app.jar go here \
--executor-memory 2g \
--executor-cores 2 \
app.jar application-txn.conf 

当我运行上面的文件时,我可以解析配置文件,但是我的应用程序在尝试从HDFS读取文件时失败了,因为它找不到一个名为${txn.hdfs.fs.home}/input/txn raw的目录。

我相信配置实际上能够读取两个files...or --否则会因为“必需”关键字而失败。我通过添加另一个带有虚拟文件名的include语句来验证这一点,而应用程序在解析配置时失败了。真不知道现在发生了什么。

有什么想法可以导致这个决议失败呢?如果有帮助:当我使用多个配置文件在本地运行时,解决方案可以正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 00:51:58

application-txn.conf的语法是错误的。

变量应该在字符串之外,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
raw-data-location = ${txn.hdfs.fs.home}"/input/txn-raw"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55961600

复制
相关文章
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
1.9K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
LVS负载均衡群集--NAT模式
一、实验拓扑图 二、实验目标:实现地址转换模式(LVS-NAT)的群集 三、实验要求 1、按上图要求部署网络。Client使用宿主机,其他四台为linux服务器,将所有linux服务器的防火墙关闭,N
L宝宝聊IT
2018/06/20
1K0
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.4K0
Springboot多个配置文件的实现
配置文件名需要满足application-{profile}.properties的格式。 {profile}对应的是环境标识,比如:
Cheng_Blog
2022/02/25
1.9K0
jmeter创建JDBC请求,返回多个字段传递给登录接口
今天给大家分享的是,【使用jmeter创建JDBC请求,返回多个字段传递给登录接口】。
程序媛淼淼
2022/07/01
6630
jmeter创建JDBC请求,返回多个字段传递给登录接口
Logstash:多个配置文件(conf)
在前面的一篇文章 “Logstash:处理多个input” 中,我们介绍了如何使用在同一个配置文件中处理两个 input 的情况。在今天这篇文章中,我们来介绍如何来处理多个配置文件的问题。对于多个配置的处理方法,有多个处理方法:
腾讯云大数据
2020/08/05
3.9K0
Logstash:多个配置文件(conf)
模态类型的传值问题
一旦弹出模态窗体或对话框,假设用户不正确其进行操作(如点击确定或取消button等),就如法进行其它的操作.
全栈程序员站长
2022/07/10
7210
模态类型的传值问题
LVS负载均衡群集--NAT+DR模式
一、实验拓扑图 二、实验目标:实现NAT + LVS-DR负载均衡群集 三、实验要求:(群集IP地址为192.168.1.254,所有主机关闭防火墙和NetworkManager服务) 1、lvs的配
L宝宝聊IT
2018/06/20
6640
Postman 传参Date类型
接口参数startDate为Date类型,用Postman传参数 { "startDate":"2022-08-05" } 接口会报错
赵哥窟
2022/08/11
1.6K0
Postman 传参Date类型
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.2K0
在做SQL故障转移群集的时候应该选择哪种模式?
如果我们的SQL Server要保证高可用性,那么可以采用故障转移群集。最简单的故障转移群集是两台服务器,一台做活动的服务器,另一台做备用服务器,这就是AP模式的Cluster。另外一个模式就是AA模式,也就是两台服务器都是运行SQL Server实例。
深蓝studyzy
2022/06/16
6150
Spring-整合多个配置文件
对于一个大型应用来讲,可能存在多个配置文件,在启动Spring容器的时候,可以通过一个String数组指定这些配置文件。
小小工匠
2021/08/16
4220
C#应用程序配置文件
代码: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add n
明明如月学长
2021/08/27
5180
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux中,管道使用竖线符号 | 表示,它位于两个命令之间。管道的基本语法如下:
网络技术联盟站
2023/09/06
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
Pyspark学习笔记(二)--- spark-submit命令
http://spark.apache.org/docs/latest/submitting-applications.html#submitting-applications,
TeeyoHuang
2021/05/10
2K0
Pyspark学习笔记(二)--- spark-submit命令
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux系统中,管道(Pipeline)是一种强大的工具,它允许将一个命令的输出作为另一个命令的输入。通过管道,我们可以将多个命令串联在一起,实现数据的流动和处理。本文将详细介绍如何在Linux中使用管道将命令的输出传递给其他命令,并提供一些常见的使用示例。
网络技术联盟站
2023/06/14
1.4K0
如何在Linux中使用管道将命令的输出传递给其他命令?
Python小知识-函数传参怎么设置期望的传参类型?
学过java的同学都知道,java编程语言中,我们在定义函数的时候,函数的传参必须指定类型,否则的话会报错。而且在调用的时候,会显示出来某个函数可以传入的参数的类型:
小博测试成长之路
2022/12/02
1.5K0
Python小知识-函数传参怎么设置期望的传参类型?
利用委托实现winform多个窗体间的传值
父窗体创建了两个子窗体——子窗体1和子窗体2,子窗体1产生的数据要在子窗体2中显示出来。
角落工程师
2022/05/14
1.7K0
Go 处理yaml类型的配置文件
先说一下,这里用到了很多关于反射类型的功能,可能刚开始看代码,如果对反射不熟悉的可能会不是非常清晰,但是同时也是为了更好的理解golang中的反射,同时如果后面想在代码中可以直接从我的git地址get: go get github.com/pythonsite/config_yaml 直接上代码: // 可以用于处理读yaml格式的配置文件,同时也可以用于理解golang中的反射 package config_yaml import ( "strings" "errors" "io
coders
2018/05/28
3.6K0

相似问题

如何将配置文件添加到以纱线-群集模式运行的星火作业中?

13

星火作业在纱线群集模式下失败

34

在纱线集群模式下将文件传递给应用程序jar

25

使用纱线群集模式初始化SparkContext时出错

42

使用火花提交纱线群集模式时丢失的蜂巢

411
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文