Storm个人总结,有兴趣的可以瞅瞅喔。。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leprovision/article/details/74191534

在学习Storm的时候我们先要自己搜点有关Storm的简介,要对它充满好奇感!好了废话不多说,言归正传。

一.Storm是什么?

storm是一个流式实时计算框架。能实现高频[指实时]数据和大规模数据的实时处理
二.Storm的组成有哪些?

Topology 用于封装一个实时计算应用程序的逻辑,类似于Hadoop的MapReduce Job
Stream 消息流,是一个没有边界的tuple序列,这些tuples会被以一种分布式的方式并行地创建和处理
Spouts 消息源,是消息生产者,他会从一个外部源读取数据并向topology里面面发出消息:tuple
Bolts 消息处理者,所有的消息处理逻辑被封装在bolts里面,处理输入的数据流并产生新的输出数据流,可执行过滤,聚合,查询数据库等操作
Task 每一个Spout和Bolt会被当作很多task在整个集群里面执行,每一个task对应到一个线程.
Stream groupings 消息分发策略,定义一个Topology的其中一步是定义每个tuple接受什么样的流作为输入,stream grouping就是用来定义一个stream应该如何分配给Bolts们.

三.storm的可靠性?

第一集群的可靠性:zk保存了Nimbus和多个Supervisor的状态信息,如果宕机可以重启进程或机器再次读取Zk中的状态信息让topology恢复到之前的状态。

第二acker机制:每一个tuple默认都会伴随一个acker线程来保证每一个tuple的发送成功这样可以保证数据的不丢失也可以手动关闭。

四.storm集群:一主多从
主节点:nimbus   
    负责分发代码,分配任务
从节点:supervisor
    生产worker(进程),执行任务

主从节点的状态都维护在zookeeper中

nimbus ---->zookeeper-->supervisor

五.storm的安装步骤
1:先安装zk集群
    192.168.8.115 192.168.8.116 192.168.8.117
2:strom集群
    主节点:192.168.8.117
    从节点:192.168.8.115、116



    修改storm的配置文件
    vi storm/conf/storm.yaml
storm.zookeeper.servers:
    - " 192.168.8.115"
    - "192.168.8.116"
    - "192.168.8.117"
nimbus.host: "192.168.8.117"
storm.local.dir: "/usr/local/storm/tmp"
supervisor.slots.ports:
    - 6700
    - 6701   
    - 6702
    - 6703

注意:storm.zookeeper.servers和nimbus.host是必须要修改的
    storm.local.dir建议修改
    supervisor.slots.ports可选

注意:storm集群中所有节点的基本配置一样

    把170上的storm拷贝到其他节点
    scp -rq storm/ 192.168.1.172:/usr/local/
    scp -rq storm/ 192.168.1.173:/usr/local/

3:启动不同节点的服务
    主节点:192.168.1.171(ui可以在任何节点启动,建议只在主节点启动即可)
        nimbus:nohup bin/storm nimbus >/dev/null 2>&1 &
        ui:nohup bin/storm ui >/dev/null 2>&1 &
            http://192.168.1.171:8080
    从节点:192.168.1.172、173
        supervisor:nohup bin/storm supervisor >/dev/null 2>&1 &
        logviewer:nohup bin/storm logviewer >/dev/null 2>&1 &
        相当于把storm的logs目录中的文件发布成web项目(可以在webui界面直接访问logs目录中的日志)

    注意:如果发现在ui界面无法查询日志,
        1:logviewer进程没启动
        2:从节点的主机名和ip的映射关系没有再本机配置

4:提交一个topology到集群
    提交
    bin/storm jar storm.jar cn.crxy.storm_4.RemoteStormTopology  aaa
    停止:
        1:ui页面做,点击进入topology的明细页面
        2:在命令行中
            bin/storm list :查看storm中的所有topology信息
            bin/storm kill RemoteStormTopology
    注意:提交和停止在所有节点都可以

Netty:是一个数据传输框架,storm中worker之间通信使用的是netty




storm rebalance mytopology -w 10 -n 5 -e blue-spout=3 -e yellow-bolt=10

-w  :waittime
-n :numworker
-e :调整组件使用的线程数量


扫描二维码关注公众号,回复: 5348186 查看本文章

猜你喜欢

转载自blog.csdn.net/leprovision/article/details/74191534