温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Storm编程入门知识点有哪些

发布时间:2021-12-23 11:51:31 来源:亿速云 阅读:170 作者:iii 栏目:云计算

这篇文章主要讲解了“Storm编程入门知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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-demo是一个包含完整的storm topology的代码示例,有详尽的注释。
源码见: https://git.oschina.net/HuQingmiao/storm-demo.git

怎么把storm 程序跑起来

###本地模式      在本地开发时,不需要部署storm, 直接在eclipse或IntelliJ idea下运行即可,便于调试。      也可以通过命令行执行: java -jar jar文件名 main入口类

###生产模式     先将你的应用程序打成jar包,但jar包中不要含有storm及相关日志包,即将storm及相关日志包的scope设为provided即可:

        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-core</artifactId>
            <version>0.9.5</version>
            <scope>provided</scope>
        </dependency>

    再把应用程序jar包上传到storm结点(Nimbus), 然后在结点上执行指令:

   storm  jar  你的应用程序.jar  Main入口类   参数(topologId)
 或
   jstorm jar 你的应用程序.jar  Main入口类   参数(topologId)

    若要在在生产模式下停止这个topology,则执行以下命令即可:

   storm  kill  参数(topologId)
或
   jstorm  kill  参数(topologId)

感谢各位的阅读,以上就是“Storm编程入门知识点有哪些”的内容了,经过本文的学习后,相信大家对Storm编程入门知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI