栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

找到多个defaults.yaml资源

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

找到多个defaults.yaml资源

在内部

LocalCluster
或通过远程运行拓扑
StormSubmitter
(这是项目中的默认设置)存在根本区别。

的范围

storm-core
设置为
<scope>provided</scope>
默认值,因为这些类文件仍然在群​​集中可用。
provided
告诉Maven,这些类一定不能包含在
jar
汇编文件中,从而减小了jar的大小。此外,如果文件被多次提供,则可以避免冲突-
default.yaml
如果将范围更改为,则会发生冲突
compile
。在这种情况下,来自的所有文件
storm-core
都打包到您中
jar
并提交给集群。Storm在
defaults.yaml
本地和群集中的本地计算机上(即本地在工作计算机上)找到文件
jar
。因此,Storm不知道使用哪个,并引发错误。

但是,

provided
如果您也在本地运行,则不包括那些类文件。当然,在本地这些文件不是自动可用的,但是在启动本地JVM时必须包含在
CLASSPATH中 。由于
provided
storm-core
您排除文件得到
ClassNotFound
异常。

作为每次要提交到不同环境时更改范围的一种替代方法,可以将范围设置为,

compile
并在
maven-jar-plugin
设置中明确包含拓扑Main /
Bolt / Spout类。此明确包含将自动从jar中排除所有其他文件,即,从中排除所有文件
storm-core

<plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-jar-plugin</artifactId>  <version>2.6</version>  <executions>    <execution>      <id>MyTopology</id>      <phase>package</phase>      <goals>        <goal>jar</goal>      </goals>      <configuration>        <includes>          <include>my/topology/package*.class</include>        </includes>      </configuration>    </execution>  </executions></plugin>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454040.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号