虚拟机上搭建storm集群详细教程

vmware+ubuntu+storm集群搭建

前言

Storm是一个分布式的、高容错的实时计算系统。
Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原理,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原理。
Storm适用的场景:
1、流数据处理:Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。
2、分布式RPC:由于Storm的处理组件都是分布式的,而且处理延迟都极低,所以可以Storm可以做为一个通用的分布式RPC框架来使用。
对于想学习storm流式计算的,我们先从搭建storm集群开始。对于新手,当然是先在虚拟机上搭建练练手,所以我就把搭建过程简单的记录一下。

一、机器准备

我准备了三台机器,首先在vmware安装ubuntu系统,得到第一台机器,然后通过虚拟机的克隆功能,得到另外两台。虚拟机安装ubuntu可参考下面的教程:虚拟机VMware+Ubuntu系统的安装教程
所以我的三台机器为:

master:192.168.229.128
slave1:192.168.229.129
slave2:192.168.229.130

配置之前,我先在home目录下建了一个文件夹spark(本来要搭建spark的,先搭建storm),后面下载和安装的文件都放在spark目录下。

二、安装jdk

1、去oracle官网下载,链接点此。下载后放到/home/spark/目录下,也可以通过终端进入该目录,在终端输入下面命令下载压缩包。

wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz

2、解压jdk压缩包

tar -zxvf jdk-8u111-linux-x64.tar.gz

3、设置环境变量,sudo vi /etc/profile,在末尾添加:

export JAVA_HOME=/home/spark/jdk1.8.0_101
export JRE_HOME=/home/spark/jdk1.8.0_101/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

4、保存关闭后,source /etc/profile,使修改生效。 然后可以验证JAVA是否安装成功,java -version。 每台机器都需要安装jdk。

三、配置三台机器的ssh服务

四、配置zookeeper

1、下载 zookeeper-3.4.10.tar.gz压缩包,点此官网下载。
2、解压到spark目录下。
3、修改 zookeeper 的配置文件。
首先将 /home/spark/zookeeper-3.4.10/conf/zoo_sample.cfg 文件复制一份,并更名为 zoo.cfg。
cd zookeeper-3.4.10/,cp conf/zoo_sample.cfg conf/zoo.cfg。然后编辑zoo.cfg文件:sudo vi zoo.cfg

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/spark/zookeeper-3.4.10/server/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.229.128:2888:3888
server.2=192.168.229.129:2888:3888
server.3=192.168.229.130:2888:3888

里面有两个需要注意的地方:
dataDir=/home/spark/zookeeper-3.4.10/server/data,需要在zookeeper-3.4.10目录下建server文件夹,里面再建data文件夹。
另外就是server.1,server.2,server.3分别对应三台机器的ip。
编辑好后保存退出。
还有另外一个需要注意的就是,在配置的dataDir 下创建myid 文件,内容就是对应的你当前 ip 下的 server.x。注意myid是文件,不是文件夹。建文件的命令:touch myid。然后vi myid,在里面加入”x”。例如,第一台服务器server.1就在myid里写1,第二台就写2。
4、在每个服务器上开启服务,cd zookeeper-3.4.10/bin./zkServer.sh start,配置成功的话会出现以下结果:
这里写图片描述
三台机器都启动之后,通过 ./zkServer.sh status 查看服务的状态:
这里写图片描述
如果出现 Error contacting service. It is probably not running.这个错误,可能有两个原因:
1. 配置错了,仔细阅读以下流程
2. zoo.cfg 三个端口没有开启。

五、配置storm

3台机器均需要安装storm ,配置完全相同。所以可以先配置一台,然后拷贝到其他两台。
1、下载安装包
storm.apache.org官网下载 apache-storm-1.1.2.tar.gz。
2、将apache-storm-1.1.2.tar.gz解压到spark文件夹下。
tar -zxvf apache-storm-1.1.2.tar.gz -C /home/spark/
3、修改配置文件storm.yaml。
nano /home/spark/apache-storm-1.1.2/conf/storm.yaml
输入以下内容:

#指定storm使用的zk集群
storm.zookeeper.servers:
- "192.168.229.128"
- "192.168.229.129"
- "192.168.229.130"
#指定storm集群中的nimbus节点所在的服务器
nimbus.host: "192.168.229.128"
#指定nimbus启动JVM最大可用内存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor启动JVM最大可用内存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor节点上,每个worker启动JVM最大可用内存大小
worker.childopts: "-Xmx768m"
#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。
ui.childopts: "-Xmx768m"
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703

注意:每行输入前都要加空格,不然服务启不起来,当时就遇到这个问题,找了半天才找到原因。
4、将master机器上的配置拷贝给slave1和slave2。
slave1: scp -r /home/spark/apache-storm-1.1.2 ubuntu@salve1:/home/spark
slave2:scp -r /home/spark/apache-storm-1.1.2 ubuntu@salve2:/home/spark
5、启动集群
在nimbus.host所属的机器上启动 nimbus服务,./storm nimbus &,启动ui服务,./strom ui &
虚拟机上搭建storm集群详细教程_第1张图片
在其它个节点上启动supervisor服务./storm supervisor &
这里写图片描述
6、查看集群
访问192.168.229.128:8080,即可看到storm的ui界面。到此,简单的storm集群就搭建好了。
虚拟机上搭建storm集群详细教程_第2张图片

你可能感兴趣的:(环境搭建)