大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了“Storm编程入门知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Storm编程入门知识点有哪些”吧!
在沿滩等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作按需策划,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,外贸营销网站建设,沿滩网站建设费用合理。
Storm是一个分布式实时计算框架, 适应于流式计算。 所谓流式计算,你可以把它想像成你家的电表,电在流过电表时,电表就要计算耗用量,电表对耗用量的计算就是典型的流式计算。
下面介绍编程过程中需要用到的Storm的几个概念:
Topology
Topology似于Hadoop中的MapReduce Job,是一个用来编排、容纳一组计算逻辑组件(Spout、Bolt)的对象(Hadoop MapReduce中一个Job包含一组Map Task、Reduce Task),这一组计算组件可以按照DAG图的方式编排起来(通过选择Stream Groupings来控制数据流分发流向),从而组合成一个计算逻辑更加强大的对象,那就是Topology。一个Topology运行以后就不能停止,它会无限地运行下去,除非手动干预(显式执行bin/storm kill )或意外故障(如停机、整个Storm集群挂掉)让它终止。
Spout
Spout是一个Topology消息源头,是一个可持续不断生产消息的组件,例如,它可以是一个Socket Server在监听外部Client连接并发送消息,可以是一个消息队列(MQ)的消费者、可以是用来接收Flume Agent的Sink所发送消息的服务,等等。Spout生产的消息在Storm中被抽象为Tuple,在整个Topology的多个计算组件之间都是根据需要抽象构建的Tuple消息来进行连接,从而形成流。
Bolt
Storm中消息的处理逻辑被封装到Bolt中,任何处理逻辑都可以在Bolt里面执行,处理过程和普通计算应用程序没什么区别,只是需要根据Storm的计算语义来合理设置一下组件之间消息流的声明、分发、连接即可。Bolt可以接收来自一个或多个Spout的Tuple消息,也可以来自多个其它Bolt的Tuple消息,也可能是Spout和其它Bolt组合发送的Tuple消息。
Stream Grouping
Storm中用来定义各个计算组件(Spout、Bolt)之间流的连接、分组、分发关系。Storm定义了如下7种分发策略:Shuffle Grouping(随机分组)、Fields Grouping(按字段分组)、All Grouping(广播分组)、Global Grouping(全局分组)、Non Grouping(不分组)、Direct Grouping(直接分组)、Local or Shuffle Grouping(本地/随机分组),各种策略的具体含义可以参考Storm官方文档、比较容易理解。
storm-demo是一个包含完整的storm topology的代码示例,有详尽的注释。
源码见: https://git.oschina.net/HuQingmiao/storm-demo.git
###本地模式 在本地开发时,不需要部署storm, 直接在eclipse或IntelliJ idea下运行即可,便于调试。 也可以通过命令行执行: java -jar jar文件名 main入口类
###生产模式 先将你的应用程序打成jar包,但jar包中不要含有storm及相关日志包,即将storm及相关日志包的scope设为provided即可:
org.apache.storm storm-core 0.9.5 provided
再把应用程序jar包上传到storm结点(Nimbus), 然后在结点上执行指令:
storm jar 你的应用程序.jar Main入口类 参数(topologId) 或 jstorm jar 你的应用程序.jar Main入口类 参数(topologId)
若要在在生产模式下停止这个topology,则执行以下命令即可:
storm kill 参数(topologId) 或 jstorm kill 参数(topologId)
感谢各位的阅读,以上就是“Storm编程入门知识点有哪些”的内容了,经过本文的学习后,相信大家对Storm编程入门知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!