- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经使用 Storm 一段时间了,但想开始开发。正如建议的那样,我正在使用 IntelliJ(到目前为止,我使用的是 Eclipse,并且只针对 Java API 编写拓扑)。
我也在看 https://github.com/apache/storm/tree/master/examples/storm-starter#intellij-idea
此文档不完整。我首先无法在 Intellij 中运行任何东西。我可以弄清楚,我需要删除 storm-core 依赖项的范围(在 storm-starter pom.xml 中)。 (在这里找到:storm-starter with intellij idea,maven project could not find class)
之后我就可以构建项目了。我还可以在 IntelliJ 中毫无问题地运行 ExclamationTopology
。但是,WordCountTopology
失败了。
首先我得到了以下错误:
java.lang.RuntimeException: backtype.storm.multilang.NoOutputException: Pipe to subprocess seems to be broken! No output read. Serializer Exception: Traceback (most recent call last): File "splitsentence.py", line 16, in import storm ImportError: No module named storm
更新:不需要安装 python-storm
即可运行
我能够通过以下方式解决它:apt-get install python-storm(来自 StackOverflow)
但是,我不会说 Python,我想知道问题是什么以及为什么我可以这样解决它。只是想更深入地了解它。也许有人可以解释。
不幸的是,我现在遇到了不同的错误:
java.lang.RuntimeException: backtype.storm.multilang.NoOutputException: Pipe to subprocess seems to be broken! No output read. Serializer Exception: Traceback (most recent call last): File "splitsentence.py", line 18, in class SplitSentenceBolt(storm.BasicBolt): AttributeError: 'module' object has no attribute 'BasicBolt'
我在网上没有找到任何解决方案。在 dev@storm.apache.org
询问也无济于事。我接受以下建议:
I think that it was always assumed that topology would always be invoked through storm-command line. Thus working directory would be ${STORM-INSTALLATION}/bin/storm Since storm.py is in the this directory, splitSentence.py would be able to find storm modules. Can you set the working directory to a path, where storm.py is present and then try. If it works, we can add it later to the documentation
但是,改变工作目录并没有解决问题。
而且由于我不熟悉 Python 并且我是 IntelliJ 的新手,所以我现在被困住了。因为 ExclamationTopology
运行,我想我的基本设置是正确的。
我做错了什么?是否可以在 IntelliJ 的 LocalCluster
中运行 WordcountTopology
?
最佳答案
不幸的是,据我所知,如果没有打包文件,您将无法使用 LocalCluster 运行多语言功能。
ShellProcess依赖TopologyContext的codeDir,supervisor使用。Workers 被序列化为 stormcode.ser,但是 multilang 文件应该被提取到序列化文件之外,以便 python/ruby/node/etc 可以加载它。
用分发模式实现这个很容易,因为总是有用户提交的 jar,主管可以知道这是用户提交的。
但是用本地模式完成这个并不容易,因为主管无法知道用户提交的jar,用户可以在不打包的情况下将拓扑运行到本地模式。
因此,本地模式的 Supervisor 从类路径中的每个 jars(以“jar”结尾)中找到资源目录(“resources”),并将第一个出现的位置复制到 codeDir。
storm jar
将用户拓扑 jar 放在类路径的第一个,因此它可以毫无问题地运行。
所以通常情况下,ShellProcess 找不到“splitsentence.py”是很自然的。也许您的工作目录或 PYTHONPATH 起到了作用。
关于python - 如何在 Intellij 中从 storm-starter 运行 WordCount Topology,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985819/
有什么区别: spring-boot-starter-web spring-boot-starter-web-services spring-boot-starter-jersey? 文档说 Star
我注意到 Spring Boot Sample Data Redis 声明了以下依赖项: org.springframework.boot spring-boot-starter
我正在观看有关 Spring Boot 的视频教程(来自 javabrains.io)。示例项目的 pom 文件包含一个父 block ,其 groupId 为 org.springframework
我正在努力尝试使用 spring boot (1.1.6.RELEASE)、gradle (2.1) 和 Java 1.8 来练习一些技术。所以我们正在考虑支持一些旧式 SOAP Web 服务调用以及
我正在尝试学习 Spring Boot,但我注意到有两种选择。 spring-boot-starter-web - 根据文档,它支持全栈 Web 开发,包括 Tomcat 和 web-mvc spri
我正在尝试在 IntellIJ 中开发一个基于 Spring Boot 的示例应用程序。所以我使用了 spring Initialzr 方法,并在设置过程中进行了默认选择。我最终得到的 pom.xml
是否可以在一个应用程序中同时使用这两个启动器? 我想将 CSV 文件中的记录加载到数据库表中。 Spring Batch 表存储在不同的数据库中,因此我假设我需要使用 JTA 来处理事务。 每当我将
我有一个微服务应用程序,在我包含的 JAR 依赖项之一中 org.springframework.boot spring-boot-starter-webflux 所以我可以使用响
当我开始学习spring-webflux时,我对这个组件有疑问。 我构建了一个简单的项目,使用maven来管理它。我添加了与 spring-boot-starter-web 和 spring-boot
我已经使用 optaplanner-spring-boot-starter 作为依赖项开发了一个完整的工作 spring boot 项目,用于任务分配,但要求是使用 kie-server-spring
当我开始学习spring-webflux时,我对这个组件有疑问。 我构建了一个简单的项目,使用 maven 来管理它。我添加了与 spring-boot-starter-web 和 spring-bo
我尝试了 spring-boot-starter-actuator,默认指令,在 pom 中添加到 spring boot 项目,它运行没有任何问题。 一旦我添加 spring-boot-starte
我当时尝试包含上述依赖项之一,但找不到任何区别: spring boot starter web:我可以看到 Flux 和 Mono 类并制作一个响应式(Reactive)休息 Controller
我们将 spring-cloud-starter-hystrix 与 spring-cloud-starter-archaius 一起使用,一旦 war 取消部署,我们将无法停止 archaius 的
我刚刚开始使用 OAuth2 学习 Spring Security,我想为我的微服务 Restful Api 创建授权服务器和资源服务器。但是我不知道从哪个依赖项开始,因为我找到了其中的一些。我使用
我正在使用 spring-boot-starter-jersey 和 spring-boot-starter-tomcat (v. 1.5.2) 和作为因此,我宁愿不添加 spring-boot-st
我正在尝试对微服务的端点实现基本身份验证。所以我使用了 spring-boot-starter-security。但我注意到 spring-boot-starter-security 不适用于 spr
我想使用 spring-boot-starter,但这意味着我必须使用“spring-boot-starter-parent”pom 而不能使用公司广泛使用的根 pom。 Spring-boot-st
目前我们正在使用 com.graphql-java-kickstart graphql-spring-boot-starter ${graph
我是 Spring Cloud 的新手,两者之间的确切区别是什么spring-cloud-starter-eureka-server和 spring-cloud-starter-netflix-eur
我是一名优秀的程序员,十分优秀!