Storm(1.2.1)集群环境搭建

1,Storm基础介绍:

    Storm作为大数据处理框架之一,其和Spark一样具有非常广泛的使用,如下为Storm的架构图:

Storm(1.2.1)集群环境搭建_第1张图片

 在了解集群配置安装之前需要掌握如下几个概念(concept):

  1. 拓扑(Topologies):类似Hadoop的MapReduce 的任务(Job),区别在于 MapReduce 的一个 Job 在得到结果之后总会结束,而拓扑会一直在集群中运行,直到被手动终止。
  2. 流(Streams):数据流(Streams)是 Storm 中最核心的抽象概念。一个数据流指的是在分布式环境中并行创建、处理的一组元组(tuple)的无界序列。
  3. 数据源(Spouts):数据源(Spout)是拓扑中数据流的来源。一般 Spout 会从一个外部的数据源读取元组然后将他们发送到拓扑中。根据需求的不同,Spout 既可以定义为可靠的数据源,也可以定义为不可靠的数据源。
  4. 数据流处理组件(Bolts):拓扑中所有的数据处理均是由 Bolt 完成的。通过数据过滤(filtering)、函数处理(functions)、聚合(aggregations)、联结(joins)、数据库交互等功能,Bolt 几乎能够完成任何一种数据处理需求。
  5. 数据流分组(Stream groupings):为拓扑中的每个 Bolt 的确定输入数据流是定义一个拓扑的重要环节。数据流分组定义了在 Bolt 的不同任务(tasks)中划分数据流的方式。
  6. 可靠性(Reliability)
  7. 任务(Tasks):在 Storm 集群中每个 Spout 和 Bolt 都由若干个任务(tasks)来执行。
  8. 工作进程(Workers):拓扑是在一个或多个工作进程(worker processes)中运行的
  9. nimbus:storm集群的守护进程之一,所以集群的主管理服务。
  10. supervisor:storm集群的worker节点,运行任务的机器守护进程。
  11. zookeeper:作为storm集群的配置管理存在。(zookeeper基本是配置管理的主选软件)

2,Storm集群安装

2.1 集群部署架构介绍

在192.168.32.150~152三台主机部署storm集群,依赖zookeeper完成配置管理及nimbus和supervisor的注册工作。

--zookeeper
  192.168.32.150
  192.168.32.151
  192.168.32.152
--nimbus
  192.168.32.150
--supbervisor
  192.168.32.151
  192.168.32.152
前置条件:在安装和配置之前需要保证所有机器JDK7+和python 2.6.6+。

2.2 zookeeper集群搭建

  2.2.1 下载解压zookeeper:http://zookeeper.apache.org/releases.html

  2.2.2 修改zookeeper的conf/zoo.cfg文件,增加如下配置(每台机器的zookeeper配置均如下)

  clientPort=2181
  server.150=192.168.32.150:2888:3888
  server.151=192.168.32.151:2888:3888
  server.152=192.168.32.152:2888:3888

  2.2.3 启动zookeeper集群

  在每台机器上通过zookeeper的bin/zkServer.sh start启动zk,zookeeper会自动组建集群。

  2.2.4 zookeeper环境确认:在每台机器上运行zkServer.sh status查看其状态,如

[root@rhel150 ~]# ./zookeeper/zookeeper-3.4.9/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

2.3 Storm集群搭建

  2.3.1 下载解压storm:http://storm.apache.org/releases/1.2.1

  2.3.2 配置storm,修改conf/storm.yaml文件,增加如下配置(每台机器配置均相同):

storm.zookeeper.servers:
      - "192.168.32.150"
      - "192.168.32.151"
      - "192.168.32.152"

storm.zookeeper.port: 2181

storm.local.dir: "/root/storm/storm-local"
nimbus.seeds: ["192.168.32.150"]

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

storm.health.check.dir: "healthchecks"

storm.health.check.timeout.ms: 5000

其中storm.local.dir指定的目录需要提前创建,supervisor.slots.ports配置的端口数量决定了每台supervisor机器的worker数量,每个worker会有自己的监听端口用于监听任务。

2.3.3 启动storm:

在192.168.32.150机器启动nimbus和监控

#!/bin/sh

STORM_HOME=/root/storm/storm-1.2.1
nohup $STORM_HOME/bin/storm nimbus &
nohup $STORM_HOME/bin/storm ui &

在192.168.32.151和152机器启动supervisor作为worker

#!/bin/sh

STORM_HOME=/root/storm/storm-1.2.1
nohup $STORM_HOME/bin/storm supervisor &
#nohup $STORM_HOME/bin/storm ui &
3 环境确认

通过浏览器访问ui监控界面,"storm ui"命令运行的机器ip + 默认8080端口,如本例中的http://192.168.32.150:8080

Storm(1.2.1)集群环境搭建_第2张图片

到此,storm集群搭建完成,主要工作为:1,zookeeper的安装;2,storm中配置zookeeper的地址;3,分别启动storm的nimbus和supervisor及监控ui。

下一篇将介绍在此集群中运行一个Toplogy。

你可能感兴趣的:(大数据)