知识点
相关文章
更多最近更新
更多Storm中数据的输入输出
2019-03-02 23:56|来源: 网路
转载请注明出处:http://blog.csdn.net/jmppok/article/details/17284817
概述
Storm是一个实时流处理系统,其中运行的是Topology。初学Storm的小伙伴可能会有这样的问题:
我写了Spout和Bolt,创建了Topology,提交到了Cluster中,然后呢?
怎么访问并使用这个Topology呢?
想象中的办法
刚开始接触Storm的时候,我猜想大概可以通过在Spout中监听一个端口如TCP Socket,HTTP之类的,外面向这个端口发送数据. 然后再最后一个Bolt中将处理数据写入文件/数据库/或者发送到指定的地址上。
理论上感觉应该是可行的,但是没有实践。
实际可以通过DPRC访问
进一步研究,发现有DRPC这个咚咚,只需要起一个DRPC Server ,并且把Topology创建为DRPC Topology,提交。就可以通过DRPCClient对该topology进行访问了。十分方便。
Storm中专业的做法
再深入一步,发现原来Storm中正确的做法应该是这样的:
集成一个通讯中间件,外部应用通过该中间件发送数据,Spout订阅这些数据,并发射....,当Bolt处理完之后又可通过该通讯中间件发送出去给应用。
具体可参考:https://github.com/nathanmarz/storm/wiki/Spout-implementations
Spout implementations
- storm-kestrel: Adapter to use Kestrel as a spout
- storm-amqp-spout: Adapter to use AMQP source as a spout
- storm-jms: Adapter to use a JMS source as a spout
- storm-redis-pubsub: A spout that subscribes to a Redis pubsub stream
- storm-beanstalkd-spout: A spout that subscribes to a beanstalkd queue
转自:http://blog.csdn.net/jmppok/article/details/17284817
相关问答
更多-
java中的输入输出[2023-08-31]
int a,b,c; Scanner s=new Scanner(System.in()); a=s.nextInt(); b=s.nextInt(); c=a+b; System.out.println(a+" + "+b+" = "+c); -
JAVA输入输出流操作[2022-11-02]
这个easy 您是要在控制台输入的吧? 代码: import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; public class Write { public static void main(String[] args) throws Exception { String path = "C:\\my.txt"; InputStreamR ... -
java输入输出程序代码[2023-10-16]
概述 java程序输入需要用到Scanner工具类,输出则使用println 解析 1、输入: 从键盘输入需要用到java的Scanner这个util包下的工具类 Scanner中输入是需要对输入的字符进行分类,int类型为nextint()方法,double类型为nextDouble()方法,字符串类型为next()方法。 #code: #out: 2、输出: java常用的输出为println #code: #out: 除了println()方法之外,java还有print()和printf()两种输出 ... -
java最简单的输入输出[2022-02-22]
public class Test{ public static void main(String [] args){ Scanner in = new Scanner(System.in); int number = in.nextInt(); System.out.println("输入的数为:" + number); } } -
linux 的输入输出重定向是什么意思?[2022-05-11]
LINUX默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。输出也是一样,你可以把屏幕输出重定向到一个文件里,再到文件里去看结果。 -
linux 的输入输出重定向要怎么用?[2022-06-08]
“<”和“>” -
C++中的输入输出重定向[2021-12-05]
你写一个程序, 在命令行上 EXE>out.txt 只要EXE里面的任何输出都在out.txt里面 EXE 评论0 11 0 加载更多