storm集群安装入门

     1.安装ZOOKEEPER,跳过,可以在多台机上安装并集群zookeeper

     2.安装ZMQ 2.1.7


下载后编译安装ZMQ:


wget http://download.zeromq.org/zeromq-2.1.7.tar.gz 
tar -xzf zeromq-2.1.7.tar.gz 
cd zeromq-2.1.7 
./configure 
make 
sudo make install 


    这时一班会出现错,说uuid-dev没有,需要安装
    在centos上需要这样安装:yum install libuuid-devel,然后再./configure就可以
   
    如果是在unbutun上就不一样,使用apt-get install uuid-dev。我安装时是这样


 3.安装JZMQ


下载后编译安装JZMQ:


git clone https://github.com/nathanmarz/jzmq.git 
cd jzmq 
./autogen.sh 
./configure 
make 
sudo make install 

这里又会出现说找不到 java_home,只要配一下就好


4.安装Python2.6.6


1. 下载Python2.6.6:


wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2 
2. 编译安装Python2.6.6:


tar –jxvf Python-2.6.6.tar.bz2 
cd Python-2.6.6 
./configure 
make 
make install 
3. 测试Python2.6.6:


python -V 
Python 2.6.6 
安装unzip


1. 如果使用RedHat系列Linux系统,执行以下命令安装unzip:


apt-get install unzip 
2. 如果使用Debian系列Linux系统,执行以下命令安装unzip:


yum install unzip 



5.下载并解压Storm发布版本


下一步,需要在Nimbus和Supervisor机器上安装Storm发行版本。


1. 下载Storm发行版本,推荐使用Storm0.8.1:


wget https://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip 
2. 解压到安装目录下:


unzip storm-0.8.1.zip 
修改storm.yaml配置文件


Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。默认配置在这里可以查看。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:


1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:


storm.zookeeper.servers: 
- “111.222.333.444″ 
- “555.666.777.888″ 
如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。


2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:


storm.local.dir: "/home/admin/storm/workdir" 
3) java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为”/usr/local/lib:/opt/local/lib:/usr/lib”,一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。


4) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:


nimbus.host: "111.222.333.444" 
5) supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:


supervisor.slots.ports:


- 6700


- 6701


- 6702


- 6703



6.启动Storm各个后台进程


最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。


以下是启动Storm各个后台进程的方式:


Nimbus: 在Storm主控节点上运行”bin/storm nimbus >/dev/null 2>&1 &”启动Nimbus后台程序,并放到后台执行;


Supervisor: 在Storm各个工作节点上运行”bin/storm supervisor >/dev/null 2>&1 &”启动Supervisor后台程序,并放到后台执行;


UI: 在Storm主控节点上运行”bin/storm ui >/dev/null 2>&1 &”启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。


注意事项:


启动Storm后台进程时,需要对conf/storm.yaml配置文件中设置的storm.local.dir目录具有写权限。


Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。


经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。


为了方便使用,可以将bin/storm加入到系统环境变量中。


至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。


向集群提交任务


1. 启动Storm Topology:


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


2. 停止Storm Topology:


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


   补充资料:

    

  1. 启动Storm后台进程时,需要对conf/storm.yaml配置文件中设置的storm.local.dir目录具有写权限。
  2. Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
  3. 经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。
  4. 为了方便使用,可以将bin/storm加入到系统环境变量中。
  5. 在storm.yaml文件中,注意每一个配治前面都要加空格,:后面也要加空格
  6. 可以配一下ui的端口,莫认是8080,如果占用了会起动不来,修改方式:ui.port: "8089",注意在ui前面加一个空格
  7. nimbus.host 这个在主节点上可以不指定,所有supervisor上都要配,表示哪一台为主节点
  8. 配治如下:########### These MUST be filled in for a storm configuration
    # storm.zookeeper.servers:
    #     - "server1"
    #     - "server2"
     storm.zookeeper.servers:
         - "112.74.119.224"
     storm.local.dir: "/usr/local/storm/workdir"
     ui.port: "8089"
     nimbus.host: "112.74.119.224"
    # nimbus.host: "nimbus"


    # ##### These may optionally be filled in:
    #    
    ## List of custom serializations
    # topology.kryo.register:
    #     - org.mycompany.MyType
    #     - org.mycompany.MyType2: org.mycompany.MyType2Serializer
    #
    ## List of custom kryo decorators
    # topology.kryo.decorators:
    #     - org.mycompany.MyDecorator
    #
    ## Locations of the drpc servers
    # drpc.servers:
    #     - "server1"
    #     - "server2"


     supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703
      网上或自已写一个测试程序,打成JAR包放上去,执行就可以,会看到storm ui上有topology




上面表示有一个topology和两个supervisor

    可以配多个zookeeper和多个supervisor

上面表示有一个topology和两个supervisor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值