我正在尝试在本地运行 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/