我正在尝试在我的Spark应用程序中使用多个(通过include)类型安全配置文件,我正在集群模式下提交给一个YARN队列。我基本上有两个配置文件,下面提供了文件布局:
上面的两个文件都是我的application.jar的外部文件,所以我使用“--files”(可以在下面看到)将它们传递给yarn
我正在使用Typesafe配置库来解析我的“application-main.conf”,在这个主配置中,我试图通过替换使用env.properties文件中的一个属性,但是变量名没有得到解析:(我不知道为什么。
txn.hdfs.fs.home=hdfs://dev/1234/data
# application-txn.conf
include required(file("env.properties"))
app {
raw-data-location = "${txn.hdfs.fs.home}/input/txn-raw"
}
//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()
}
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的目录
我相信配置实际上能够读取两个文件...否则它会因为“required”关键字而失败。我通过添加另一个带有虚拟文件名的include语句来验证这一点,应用程序在解析配置时失败。我真的不知道现在发生了什么事:(。
你知道是什么导致了这个决议的失败吗?如果有帮助的话:当我在本地运行多个配置文件时,解析效果很好
application-txn.conf中的语法错误。
变量应该在字符串之外,如下所示:
raw-data-location = ${txn.hdfs.fs.home}"/input/txn-raw"
我认为传递自定义exitcode是不可能的,因为驱动程序传递的任何exitcode都将转换为yarn状态,而yarn将把任何失败的exitcode转换为1或失败。
我正在使用yarn-cluster Master运行我的spark应用程序。 应用程序是做什么的? 外部服务根据对RESTService的HTTP请求生成jsonFile Spark需要在解析JSON后读取该文件并执行一些工作 我认为将文件作为--files传递会让我忘记保存和删除这个文件。类似于通过-过程-忘记。 那么,如何读取通过-files传递的文件呢?唯一的解决方案是手工创建路径,硬编码“
现在我想在一个集群中用spark-submit(集群模式)运行我的应用程序。我的项目的所有依赖项的jar文件都存储在HDFS上。只要我的配置文件包含在jar文件中,一切都可以正常工作。但这对于测试目的来说是不实际的,因为我总是要重新构建JAR。 因此,我排除了项目的配置文件,并通过“driver-class-path”添加了它们。这在客户端模式下工作,但如果我现在将配置文件移动到HDFS并在集群模
问题内容: 我正在建立一个包括条目之间关系的通讯簿。我为个人,公司,场地和角色有单独的模型。在我的索引页面上,我想列出每个模型的所有实例,然后对其进行过滤。这样一个人可以轻松地搜索和查找条目。我已经能够使用通用视图列出单个模型,并使用get_extra_context显示另一个模型: 我还可以使用自定义视图列出单个模型: 这是这两个测试的urls.py: 所以我的问题是“如何修改此参数以将更多模型
我有一个巨大的文件,里面有大约100万条记录。我的要求是从文件中读取记录,并具有可配置数量的线程,这些线程跨多个线程处理记录。 目前,我正在使用单个线程读取该文件,并将其存储到一个集合中。 如何将集合元素按顺序传递给不同的线程进行进一步处理?
我正在开发一个Spring Boot应用程序,我必须让它作为一个war在我们的Weblogic 12c服务器上运行。 我试图找到一种方法将默认的Spring活动配置文件(此处和此处的信息)传递给应用程序,而不必在机器本身设置环境变量。如果可能的话,我希望能够使用Weblogic管理控制台指定此配置文件。 我尝试使用“Environment/Servers/MyServer/Server Start