您的位置:首页 > 其它

Storm简述及集群安装

2015-07-02 16:33 127 查看
Storm 集群类似于一个 Hadoop 集群。然而你在 Hadoop 的运行“MapReduce job”,

在storm 上你运行 “topologies (不好翻译)”。“job”和“topologies ”本身有很

大的不同,一个关键的区别是,MapReduce 的工作最终完成,而 topologies 处理消息

永远保持(或直到你杀了它) 。Strom 集群有主要有两类节点:主节点和工作节点。

主节点上运行一个叫做“Nimbus ”的守护进程,也就是类似 Hadoop 的“JobTracker”。

Nimbus 负责在集群分发的代码,将任务分配给其他机器,和故障监测。

Storm 安装部署

2.1 搭建 Storm 集群的主要步骤

1. 搭建一个 Zookeeper 集群

2. 在 Nimbus 和所有工作机器(Supervisor)上安装如下软件

 Python-2.6.6

 J***A 7

 ZeroMQ -2.1.7

 JZMQ

1. 配置 storm.yaml

2. 使用 Storm 脚本启动 Nimbus,Supervisor 及 UI

2.2 布置 ZK 集群

安装 ZK :
http://labs.mop.com/apache-mirror/zookeeper/zookeeper-3.3.5/zookeeper-3.3.5.tar.gz

tar -zxvf zookeeper-3.3.5.tar.gz

cp -R zookeeper-3.3.5 /usr/local/

ln -s /usr/local/zookeeper-3.3.5/ /usr/local/zookeeper

vim /etc/profile (设置 ZOOKEEPER_HOME 和 ZOOKEEPER_HOME/bin)

export ZOOKEEPER_HOME="/usr/local/zookeeper"

export PATH=$PATH:$ZOOKEEPER_HOME/bin

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

( 用zoo_sample.cfg ***$ZOOKEEPER_HOME/conf/zoo.cfg)

mkdir /tmp/zookeeper

mkdir /var/log/zookeeper

zookeeper 的单机安装已经完成了。

配置 ZK 集群:

(1)配置 Zookeeper 路径下的 conf/zoo.cfg

dataDir=/tmp/zookeeper

#即之前创建的文件夹,可以自定

clientPort=2181

server.1=XXX.XXX.XXX.XXX:3887:4887

server.2=XXX.XXX.XXX.XXX:3887:4887

server.3=XXX.XXX.XXX.XXX:3887:4887

(2)在对应 IP 的节点上的/tmp/zookeeper 目录中,创建 myid 文件,该文件中只包涵一个

数字 。

(3)进入 Zookeeper 的安装目录的 bin/目录,使用命令 zkServer.sh start 将 zookeeper

守护进程启动。

2.3 安装相关软件

2.3.1 安装 Python-2.6.6 或以上版本

wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
tar zxvf Python-2.6.6.tgz.

cd Python-2.6.6 ./configure

make

make install

vi /etc/ld.so.conf

追加/usr/local/lib/

sudo ldconfig

2.3.2 安装 zeromq

wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar zxf zeromq-2.1.7.tar.gz

cd zeromq-2.1.7

./configure

make

make install

sudo ldconfig

2.3.3 安装 jzmq

git clone git://github.com/nathanmarz/jzmq.git

cd jzmq

./autogen.sh

黄崇远文档整理系列

11

./configure

make

make install

2.3.4 安装 storm

wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip

mv storm-0.8.1 /usr/local/

vim ~/.bashrc #配置环境变量

export STORM_HOME=/usr/local/storm-0.8.1

export PATH=$PATH:$STORM_HOME/bin

mkdir /tmp/storm #自定义目录,配置文件中需要指明

2.4 配置 Storm.yaml

#配置 storm 集群使用的 zookeeper 集群的地址

storm.zookeeper.server:

- “XXX.XXX.XXX.XXX”

- “XXX.XXX.XXX.XXX”

- “XXX.XXX.XXX.XXX”

#配置 storm 信息存储目录

Storm.local.dir: “/tmp/storm”

#配置 java.library.path 这是 storm 所依赖的本地依赖(ZeroMQ 和 JZMQ)的加载地址,

默认的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多情况下是对的,所以你应该

不用更改这个配置,除非你系统的库路径给默认配置不一样。

#配置工作机器的工作端口。 supervisor.slots.ports 对于每一台工作机器,这个配置

指定在这台工作机器上运行多少工作进程, 每个进程使用一个独立端口来接收消息,这

个配置同时也指定使用哪些端口。如果你在这里定义 5 个端口,storm 会在这个机器上

最多分配 5 个工作进程。如果分配 3 个端口,那么最多分配 3 个进程。设置配置 4 个

worker 运行在端口

6700, 6701, 6702, 和 6703。例如:supervisor.slots.ports :

- 6700

- 6701

- 6702

- 6703

2.5 启动 Storm 集群

(1)监控 Nimbus 在 Nimbus 机器上运行 bin/storm nimbus

(2)Supervisor 在每台工作机器上运行 bin/storm supervisor, supervisor 负责

启动和终止工作机器上的工作进程

(3)UI storm UI 是一个可以查看 storm 运行状态的的一个网站,通过 bin/storm ui

运行,访问地址: http://{nimbus.host}:8080/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: