Storm集群的搭建

在Ubuntu 14.04下搭建Storm集群环境


Step 1. 下载所需的软件包:

1). JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html

2). Python 2.7.x: https://www.python.org/downloads/

 (注意:因为 Ubuntu 14.04 是自带 Python 2.7 的,所以如果是在Ubuntu 14.04下搭建Storm集群环境的话,这一步就可以免了)

3). Zookeeper: http://zookeeper.apache.org/releases.html#downloa

4). Storm: http://storm.apache.org/downloads.html


Step 2. 安装 JDK

假设下载后的JDK文件为 jdk-8u65-linux-x64.tar.gz

将文件复制到/usr/local/并解压:

$ cp jdk-8u65-linux-x64.tar.gz /usr/local/
$ cd /usr/local/
$ tar -zxvf jdk-8u65-linux-x64.tar.gz
$ ln -s jdk1.8.0_65 jdk
编辑~/.bashrc文件,设置环境变量:
$ vim ~/.bashrc

(*注意:如果之前没有安装vim,需要先输入下面的命令安装vim)

$ sudo apt-get install vim

在~/.bashrc文件的末尾加入环境变量设置:

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:
更新环境变量的设置:
$ source ~/.bashrc
在终端中输入命令显示JDK的信息:
$ java -version

此时如果输出以下信息,则表示JDK已经安装成功

java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)


Step 3. 配置 Zookeeper 


1) 配置/etc/hosts文件

先配置/etc/hosts文件来绑定集群中的每台机器(这里假设仅使用2台机器):

$ vim /etc/hosts
在/etc/hosts文件的末尾加上配置信息:
192.168.1.104 jiamingmai-notebook
192.168.1.104 jm01
192.168.1.105 jiamingmai-PHA14
192.168.1.105 jm02

(*注意:根据自己的主机名和IP地址来设置,这里的jiamingmai-notebook和jiamingmai-PHA14是主机名,192.168.1.104和192.168.1.105分别是这2台机器的IP地址,jm01和jm02是自定义的名称. 如果不清楚机器的IP地址,可以使用 ifconfig 命令查看)

配置完/etc/hosts文件后,可以分别在2台机器上使用 ping 命令查看是否连通:

$ ping jm01
$ ping jm02
$ ping jiamingmai-notebook
$ ping jiamingmai-PHA14
如果输出类似如下的响应信息,表示可以成功连通:
64 bytes from jiamingmai-PHA14 (192.168.1.105): icmp_seq=1 ttl=64 time=2149 ms
64 bytes from jiamingmai-PHA14 (192.168.1.105): icmp_seq=2 ttl=64 time=1142 ms
64 bytes from jiamingmai-PHA14 (192.168.1.105): icmp_seq=3 ttl=64 time=134 ms
64 bytes from jiamingmai-PHA14 (192.168.1.105): icmp_seq=4 ttl=64 time=2.06 ms
64 bytes from jiamingmai-PHA14 (192.168.1.105): icmp_seq=5 ttl=64 time=2.07 ms


2) 配置 Zookeeper 的conf

复制压缩包 zookeeper-3.4.6.tar.gz 到/usr/local,并解压:

$ cp zookeeper-3.4.6.tar.gz /usr/local/
$ cd /usr/local
$ tar -zxvf zookeeper-3.4.6.tar.gz
$ ln -s zookeeper-3.4.6 zookeeper
配置zookeeper:
$ cd zookeeper/conf
$ cp zoo_sample.cfg zoo.cfg
$ vim zoo.cfg

配置 zoo.cfg 文本的内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zkdata
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
server.1=jm01:2888:3888
server.2=jm02:2888:3888

每个参数的具体说明见http://my.oschina.net/JiamingMai/blog/614246

创建dataDir以及dataLogDir指定的文件夹:

$ mkdir /usr/local/zookeeper/zkdata
$ mkdir /usr/local/zookeeper/logs

在dataDir所指定的文件夹下(这里是/usr/local/zookeeper/zkdata)创建一个myid文件,内容为机器所对应的id. 例如,对于jm01,则其id为1. 输入如下命令创建 myid 文件:

$ cd /usr/local/zookeeper/zkdata
$ echo 1 > myid


3) 设置 Zookeeper 的环境变量

输入下面命令以编辑~/.bashrc文件:

$ vim ~/.bashrc
在末尾加入下面内容:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin
输入下面的命令更新环境变量设置:
$ source ~/.bashrc


4) 运行 Zookeeper

在集群中的机器上分别输入下面的命令运行Zookeeper:

$ zkServer.sh start

在各个机器上查看当前的状态:

$ zkServer.sh status

如果看到输出Mode: follower 或 Mode: leader,表示已成功启动


Step 4. 配置 Storm


1) 解压Storm的压缩文件

复制压缩包 apache-storm-0.10.0.tar.gz 到/usr/local,并解压:

$ cp apache-storm-0.10.0.tar.gz /usr/local/
$ cd /usr/local
$ tar -zxvf apache-storm-0.10.0.tar.gz
$ ln -s apache-storm-0.10.0 storm

2) 配置Storm的conf

$ vim /usr/local/storm/conf/storm.yaml
输入内容:
 storm.zookeeper.servers:
     - "jm01"
     - "jm02"
 nimbus.host: "jm01"
 storm.local.dir: "/usr/local/storm/status"
 supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703
(*注意:各个参数的含义参考 http://my.oschina.net/JiamingMai/blog/536877. 各个机器上storm.zookeeper.servers设置以及nimbus设置必须是相同的)

创建storm.local.dir所指定的文件夹:

$ mkdir /usr/local/storm/status


3) 设置Storm的环境变量

输入下面命令以编辑~/.bashrc文件:

$ vim ~/.bashrc
在末尾加入下面内容:
export STORM_HOME=/usr/local/zookeeper
export PATH=$PATH:${STORM_HOME}/bin
输入下面的命令更新环境变量设置:
$ source ~/.bashrc


4) 运行Storm

在作为 nimbus 的机器上运行:

$ storm nimbus > /dev/null 2>&1 &

在作为 supervisor 的机器上运行:

$ storm supervisor > /dev/null 2>&1 &

(*注意:作为 nimbus 的机器,同时也可以作为 supervisor)

在其中的一台机器上开启Storm UI:

$ storm ui > /dev/null 2>&1 &

在浏览器的URL中输入127.0.0.1:8080打开UI页面,如下图所示:

Storm集群的搭建_第1张图片


Step 5. 提交JAR文件到集群

使用以下命令将打包后的JAR包提交到集群:

$ storm jar ./WordCounterTopology.jar jm.app.storm.WordCounterTopology wordCounter
其中,./WordCounterTopology.jar 是JAR文件所在的路径,jm.app.storm.WordCounterTopology 是main方法的类名,wordCounter是提交时自定义的Topology名称

你可能感兴趣的:(zookeeper,cluster,storm,topology)