Storm集群环境搭建(1个nimbus+2个supervisor)




Storm是开源的一个分布式实时计算系统,用于数据的实时分析,持续计算,分布式RPC、在线机器学习、ETL等。例如,在电商购物网站购买商品时,会在网页旁边或者底端看到与自己所需要商品相关的系列商品,这就是使用类似Storm实时计算去做的。Hadoop适用于海量数据的离线数据分析,无法做到实时分析计算。

Storm系统的设计保证了消息能得到快速的处理,使用ZeroMQ作为其底层消息队列。Storm有一个"本地模式",可以在处理过程中完全模拟Storm集群,可以使我们快速进行开发和单元测试。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快,在一个小集群中,,每个结点每秒可以处理数以百万计的消息。Storm的部署和运维都很便捷,可以使用任意编程语言来开发应用。

下图为Hadoop和Storm的简单对比

Storm的架构结构图


Nimbus主节点:通常运行一个后台程序Nimbus,用于响应分布在集群中的节点,分配任务和监测故障,类似于Hadoop中的Job Tracker。

Supervisor工作节点:运行一个后台程序Supervisor,接收Nimbus分配的任务,管理属于自己的worker进程。每个工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。

Zookeeper:完成Supervisor和Nimbus之间协调的服务。而应用程序实现实时的逻辑则被封装到Storm中的topology,而topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接的图。

Topology:Storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。一个topology是spouts和bolts组成的图,通过stream groupings将图中的spouts和bolts连接起来。


Storm所使用的容器是jetty,底层通信使用netty,zookeeper使用的是Curator。


Storm环境搭建

Zookeeper集群包括3台机器:192.168.0.217、192.168.0.218、192.168.0.219

Zookeeper集群搭建参考文章《Zookeeper简介与集群搭建》

3台Storm机器IP:192.168.0.222、192.168.0.223、192.168.0.224,关闭防火墙,并修改/etc/hosts配置,安装JDK1.8并配置环境变量


修改/etc/hosts配置

vim /etc/hosts


配置环境变量

vim /etc/profile

添加

export JAVA_HOME=/usr/local/localsoftware/jdk1.8.0_121

export PATH=$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

执行source /etc/profile 使环境变量立即生效


安装python

下载3.6.4版本


下载Python-3.6.4.tgz,并分别上传到192.168.0.222、192.168.0.223、192.168.0.224


执行下面指令解压Python

tar -zxvf Python-3.6.4.tgz


cd Python-3.6.4

./configure --prefix=/usr/local/Python-3.6.4

make

sudo make install


Storm安装

下载Storm安装包,并分别上传到192.168.0.222、192.168.0.223、192.168.0.224


解压    

tar -zxvf apache-storm-1.2.1.tar.gz  -C  /usr/local/


配置Storm的环境变量

vim /etc/profile

添加

export STORM_HOME=/usr/local/apache-storm-1.2.1

修改

export PATH=$JAVA_HOME/bin:$STORM_HOME/bin:$PATH

执行指令使环境变量立即生效   source  /etc/profile 


修改Storm的conf目录下的配置文件storm.yaml

vim storm.yaml

配置Storm集群使用的Zookeeper服务


注意上图中箭头位置的空格,不要去掉,否则可能会导致Storm无法正常启动


创建data文件夹

mkdir  /usr/local/apache-storm-1.2.1/data


启动Storm集群

首先,启动Zookeeper集群

cd /usr/local/zookeeper





其次,启动Storm集群

主机器192.168.0.222     从机器:192.168.0.223、192.168.0.224

主机器(nimbus):  storm nimbus  &

从机器(supervisor):    storm supervisor  &

主机器ui运行:  storm  ui  &

主机器logviewer运行:    storm  logviewer  &






查看启动日志信息

192.168.0.222    nimbus


192.168.0.223   supervisor


查看192.168.0.222  nimbus中的ui.log

vim ui.log


从上图可以看出,Storm的管控台ui使用的Server为jetty


在浏览器中访问http://192.168.0.222:18080/  ,可以查看storm的一些集群配置






你可能感兴趣的:(Storm)