zoukankan      html  css  js  c++  java
  • Storm集群部署

    一. 说明

      Storm是一个分布式实时计算系统,Storm对于实时计算的意义就相当于Hadoop对于批量计算的意义。对于实时性较高的系统Storm是不错的选择。Hadoop提供了map, reduce原语,使批处理程序变得非常地简单和优美。同样,storm也为实时计算提供了一些简单优美的原语。

      涉及的术语说明:

      Nimbus:Storm集群的主控节点,负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。其进程名为nimbus。

      Supervisor:Supervisor负责监听从Nimbus分配给它执行的任务,据此启动或停止执行任务的工作进程。其进程名为supervisor。

      core:Storm的UI服务进程。

      安装部署前的准备工作:

      1. 配置各主机IP,将各主机IP配置为静态IP(保证各主机可以正常通信,为避免过多的网络传输,建议在同一网段)。

      2. 修改各主机名,Storm集群中的所有主机都需要修改。

      3. 配置各主机映射,修改hosts文件,加入各主机IP和主机名的映射。

      4. 开放相应端口,后面文档中配置的端口都需要开放(或者关闭防火墙)。

      5. Python2.7及以上版本。

      6. 保证Zookeeper集群服务正常运行。如果在CentOS上安装过Hadoop或者Zookeeper的话,1-5项基本没问题。关于Zookeeper参考:http://www.cnblogs.com/wxisme/p/5178211.html

      7. 这里使用的JDK、Storm版本分别为1.8和0.9.5。

    二. 安装配置Storm集群

      1. 到Storm官网下载对应的安装包并上传到集群节点。

      2. 解压安装包

    tar -xvzf apache-storm-0.9.5.tar.gz

      3. 修改storm.yaml配置文件

    vim conf/storm.yaml

      Storm集群使用的Zookeeper集群地址,根据实际情况进行修改。

    storm.zookeeper.servers:
          - "node1"
          - "node2"
          - "node3"

      Zookeeper的端口不是默认端口时需要配置参数:

    storm.zookeeper.port: "修改的端口"

      Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录(根据实际情况创建)并给以足够的访问权限。

    storm.local.dir: "/usr/storm/data"

      Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件。根据实际情况进行修改。

    nimbus.host: "node3"

      对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口。根据实际情况进行修改。

    supervisor.slots.ports:
          - 6700
          - 6701
          - 6702

      DRPC提供了集群中处理功能的访问接口,storm集群drpc地址,根据实际情况进行修改。关于DRCP参考:http://www.dataguru.cn/article-5572-1.html

    drpc.servers:
          - "node3"

      默认情况下,Storm启动worker进程时,JVM的最大内存是768M。由于在使用过程中,Bolt中加载大量数据,768M内存无法满足要求,会导致内存溢出。根据实际情况进行修改。

    worker.childopts: "-Xmx1024m"

    注意:上面的各项配置之间最好不要留有空行或者其他的空白字符。

    三. 启动Storm集群

      1. 在主控节点启动Nimbus服务

    bin/storm nimbus >> /dev/null &

      查看nimbus服务是否启动:

    jps

      2.在各个节点启动Supervisor服务

    bin/storm supervisor >> /dev/null &

      3.启动drpc服务

    bin/storm drpc >> /dev/null &

      4.在主控节点启动Storm UI服务

    bin/storm ui >> /dev/null &

      查看UI服务是否启动:

    jps

      访问Storm UI

    http://nimbus:8080/

    四. 向Storm集群提交服务

      执行以下命令,启动Storm Topology:

    bin/storm jar test.jar com.test.MyTopology arg1 arg2

      其中,test.jar是包含Topology实现代码的jar包,com.test.MyTopology的main方法是Topology的入口,arg1和arg2为com.test.MyTopology执行时需要传入的参数。

      停止Storm Topology:

    bin/storm kill {toponame}

      其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

    简单的Storm集群就部署好了,可以开始愉快的Storm之旅了!

  • 相关阅读:
    学生管理系统
    python集合(方法)
    python字典(包括方法)
    python元组(包括方法)
    python列表(包含列表方法)
    python索引
    python三元运算
    python while循环
    python-if语句
    python数据类型和运算符
  • 原文地址:https://www.cnblogs.com/wxisme/p/5197274.html
Copyright © 2011-2022 走看看