xml - 执行 Storm 启动器时出错

标签 xml java-io apache-storm

我正在尝试在本地运行 Storm 启动项目。我正在按照来自-

的说明进行操作

https://github.com/apache/storm/tree/master/examples/storm-starter

但是当我尝试执行 storm jar 命令时,我得到了

ERROR StatusLogger Invalid URL C:/Users/xyzabc/apache-storm-0.10.0-beta/log4j2/cluster.xml java.net.MalformedURLException: unknown protocol: c

我认为它与 cluster.xml 和 worker.xml 中定义的以下部分有关

 <RollingFile name="METRICS"
                 fileName="${sys:storm.log.dir}/metrics.log"
                 filePattern="${sys:storm.log.dir}/metrics.log.%i">

显然文件名需要像这样

file:///C:/Users/xyzabc/apache-storm-0.10.0-beta/log4j2/cluster.xml

但是当我尝试通过设置来做到这一点时

<RollingFile name="METRICS"
                     fileName="file:///${sys:storm.log.dir}/metrics.log"
                     filePattern="file:///${sys:storm.log.dir}/metrics.log.%i">

我收到这个错误

ERROR Unable to create file file:///C:\Users\xyzabc\apache-storm-0.10.0-beta\logs/metrics.log java.io.IOException: The filename, directory name, or volume label syntax is incorrect

如您所见,它以某种方式完全弄乱了文件路径。

有没有一种方法可以在 xml 属性中正确呈现“file:///”?

最佳答案

删除\log4j2\worker.xml 和\log4j2\cluster.xml 中的所有更改。

编辑\bin\storm-config.cmd 并修改以下指定条目。

来自

set STORM_LOGBACK_CONFIGURATION_FILE=%STORM_LOGBACK_CONFIGURATION_DIR%\cluster.xml

set STORM_LOGBACK_CONFIGURATION_FILE=file://%STORM_LOGBACK_CONFIGURATION_DIR%\cluster.xml

来自

set STORM_LOGBACK_CONFIGURATION_FILE=%STORM_HOME%\log4j2\cluster.xml

set STORM_LOGBACK_CONFIGURATION_FILE=file://%STORM_HOME%\log4j2\cluster.xml

storm-config.cmd 的 logback 配置条目上添加 file:// 有助于解决该问题。

关于xml - 执行 Storm 启动器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417824/

相关文章:

xml - 在 Swift 中对 XML 元素进行分组

java - 文件输入流空指针异常

java - 从 System.In 读取没有换行符的行

java - 如何在 Java String 中存储 EBCDIC (IBM-1047) 编码文本而不破坏它?

java - KafkaSpout 没有收到来自 Kafka 的任何信息

xml - XSLT 错误 : Cannot find a template named X

iphone - 如何让 NSMutableArray 和 NSDictionary 在 UI 中显示结果

android - 带边框的 View

java - 如何测量 Storm 中每个元组的端到端延迟?

Cassandra Storm 集成