您的位置:首页 > 运维架构 > Linux

CentOS 6.3配置Storm1.0.2

2016-09-13 10:52 501 查看

1.环境准备

CentOS 6.3 64位
JDK1.8.0_71
Python2.7.2
ZooKeeper3.3.6
Storm1.0.2

本文配置方法参考自CentOS下Storm 1.0.0集群安装详解

2.安装ZooKeeper

2.1 单机模式

从官方网站ZooKeeper Releases下载所需版本并解压

编辑/etc/profile设置zookeeper的环境变量

#set zookeeper environment
export ZOOKEEPER_HOME=/home/b216/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
用zookeeper目录下的conf中的zoo_sample.cfg制作zoo.cfg
mkdir /tmp/zookeeper

mkdir /var/log/zookeeper

使用/zkServer.sh start运行不报错,则zookeeper的单机安装已经完成了

2.2 集群模式

集群模式建议至少有3个节点,节点个数最好是奇数,每个节点要有相同的个配置文件

打开配置文件zoo.cfg,修改为:

tickTime=2000
dataDir=/opt/zookeeper-3.4.8/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888


server后面跟的数字就是该节点的标号,我们需要将这个编号写入名为
myid
的文件。该文件应该存放在前面配置的dataDir指向的目录下。
例如上面的slave1节点,对应的
data/myid
文件中应该写入2

将zookeeper拷贝到各节点上



scp -r /home/b216/zookeeper root@slave1:/opt
scp -r /home/b216/zookeeper root@slave2:/opt
拷贝完成后,记得修改对应服务器的
myid
文件

配置完成后需要到每个节点上启动Zookeeper服务,每个节点启动后可以用
zkServer.sh status
查看当前节点的启动状态以及是leader节点还是follower节点。

3.安装zeromq和jzmq

3.1 安装zeromq

从官网Get The Software下载压缩包并解压,进入解压后目录

./configure

make

make install

sudo ldconfig (更新LD_LIBRARY_PATH)

zeromq安装完成。

注意:如有有依赖报错,需要安装:

sudo yum install uuid*

sudo yum install libtool

sudo yum install libuuid 

sudo yum install libuuid-deve

若出现缺少libzmq.so.3.0.0错误,可以到RPM CentOS 6 libzmq3下载

3.2 安装jzmq

yum install git 

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

cd jzmq

./autogen.sh

./configure

make

make install

然后,jzmq就装好了.

注意:在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool isrequired to run autogen.sh,这是因为缺少了libtool,可以用#yum installlibtool*来解决。

4.安装Storm

4.1 下载最新版Storm

从官网Storm downloads下载1.0.2版本的压缩文件并解压

向/etc/profile添加关于storm的环境设置

#set storm environment
export STORM_HOME=/home/b216/storm
export PATH=$PATH:$STORM_HOME/bin

至此,storm单机版本安装完毕

4.2 修改配置文件

打开核心配置文件:storm.yaml




cd /home/b216/storm/conf
vi storm.yaml
至少完成以下3处的配置,笔者的配置文件:




storm.zookeeper.servers:
- "master"
- "slave1"
- "slave2"

storm.local.dir: "/home/b216/storm/data"

nimbus.seeds: ["master"]
## Locations of the drpc servers
drpc.servers:
     - "server1"
     - "server2"


其中
storm.zookeeper.servers
,表示Zookeeper集群地址。如果Zookeeper集群使用的不是默认端口,那么还需要配置storm.zookeeper.port。
storm.local.dir
用于配置Storm存储少量文件的路径。
nimbus.seeds
用于配置主控节点的地址,可以配置多个。

注:当在本地运行时可以配置为localhost运行。

4.3 拷贝文件到其余主控节点和工作节点

scp -r storm root@slave1:/opt
scp -r storm root@slave2:/opt


5.启动Storm

Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node)。其分别对应的角色如下:

主控节点(Master Node)上运行一个被称为Nimbus的后台程序,它负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。

每个工作节点(Work Node)上运行一个被称为Supervisor的后台程序。Supervisor负责监听从Nimbus分配给它执行的任务,据此启动或停止执行任务的工作进程。每一个工作进程执行一个Topology的子集;一个运行中的Topology由分布在不同工作节点上的多个工作进程组成。

5.1 启动主控节点

storm nimbus


5.2 启动工作节点

storm supervisor


5.3 启动管理界面

在主控节点上运行

storm ui


说明:需要分别到每个节点启动服务。管理界面将运行在启动它的服务器的8080端口,日志文件在程序目录中logs文件夹下。上面的启动方式是在前台运行的,如果需要在后台运行,可以使用类似
nohup storm nimbus &
的方式运行。

注意:只有提交分布式模式的拓扑到集群才会在Topology summary显示对应的拓扑信息。

5.4 启动DRPC服务

在DRPC服务器上运行

storm drpc


用来启动drpc服务。

5.5 可能遇到的问题

当遇到supervisor启动一段时间后自动exit时,需要关闭集群,并且检查配置的storm.local.dir目录是否存在,是否有写入权限,全都正常的话清空再重启集群就好了。

6.运行storm-start实例

进入目录storm/examples/storm-start,运行如下命令启动wordcount

storm jar storm-starter-topologies-1.0.2.jar org.apache.storm.starter.WordCountTopology
进一步的使用maven打包代码运行参考使用Maven编译运行Storm入门代码(Storm starter)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: