centos7:storm集群搭建


一、安装环境

二、配置主机

1、修改主机名

192.168.17.133主机名为nimbus

[root@localhost ~]# hostnamectl set-hostname nimbus
[root@localhost ~]# hostnamectl # 进行查看
   Static hostname: nimbus
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 9c87704ce3d94696bb0d7f42391344ce
           Boot ID: 33382d7142944f5c9138afec2111e77f
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.3.2.el7.x86_64
      Architecture: x86-64

配置其他两台192.168.17.134,192.168.17.135主机名分别为supervisor1和supervisor2。

2、配置“/etc/hosts”文件,方便直接通过主机名访问主机。

主机名为nimbus的/etc/hosts更新:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.17.133 localhost
192.168.17.133 nimbus
192.168.17.134 supervisor1  # 务必要添加,否则找不到
192.168.17.135 supervisor2  # 务必要添加,否则找不到

192.168.17.134、192.168.17.135也是同样方式,重启后,即可生效。


安装zookeeper

     1、将zookeeper-3.4.12.tar.gz解压到/data2/frame/目录下(/data2/frame用于存储所有流计算或者分布式相关组件),将zookeeper-3.4.12目录名改为。

$ cd /data2/frame/
$ tar -zxf zookeeper-3.4.12.tar.gz
$ mv zookeeper-3.4.6 zookeeper
$ cd zookeeper

    2、分别创建data和logs目录   

# 用于存储zookeeper的数据文件
mkdir data
# 用于存储日志
mkdir logs 

   3、创建配置文件zoo.cfg

    该文件是不存在的,需要到zookeeper的conf目录下,拷贝zoo-sample.cfg,并将名称修改为zoo.cfg。

$ cp conf/zoo-sample.cfg conf/zoo.cfg
$ vim conf/zoo.cfg  

    4、配置zookeeper

# The number of milliseconds of each tick
# 表示Zookeeper服务器心跳时间,单位毫秒
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=/tmp/zookeeper


# 用于存储zookeeper的数据文件
dataDir=/data2/frame/zookeeper/data
# 用于存储zookeeper的日志文件
dataLogDir=/data2/frame/zookeeper/logs
# 添加集群的服务器
server.0=nimbus:2888:3888
server.1=supervisor1:2888:3888
server.2=supervisor2:2888:3888


# the port at which the clients will connect 
# 连接端口,客户端访问zookeeper时经过服务器端时的端口号
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

配置说明:添加我们的服务器,其中等号前面的“0”,“1“,”2“表示的是id,必须唯一且是数字,保存在dataDir目录下的myid文件中。等号右边的nimbus、supervisor1、supervisor2是集群服务器名,2888是follower和集群中的leader交换消息所使用的端口。3888是选举leader时所使用的端口。

5、在data文件夹中创建myid文件,里面内容是server.N中的N。

echo "0" > /data2/frame/zookeeper/data/myid  

6、复制配置好的zookeeper到其他两台主机上

scp -r zookeeper/ root@supervisor1:/data2/frame/zookeeper  
scp -r zookeeper/ root@supervisor2:/data2/frame/zookeeper  
# 修改supervisor1主机
echo "1" > data/myid
# 修改supervisor2主机
echo "2" > myid

7、启动ZooKeeper服务器

[root@localhost zookeeper]# bin/zkServer.sh start
# 执行此命令后,将收到以下响应表示成功
ZooKeeper JMX enabled by default
Using config: /data2/frame/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

8、启动CLI

$ bin/zkCli.sh

    键入上述命令后,将连接到ZooKeeper服务器,应该得到以下响应。

Connecting to localhost:2181
................
................
................
Welcome to ZooKeeper!
................
................
WATCHER::
WatchedEvent state:SyncConnected type: None path:null
[zk: localhost:2181(CONNECTED) 0]quit #退出

9、查看zookeeper状态

$ ./bin/zkServer.sh status

    状态返回:

[root@nimbus zookeeper]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data2/frame/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@supervisor1 zookeeper]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data2/frame/zookeeper/bin/../conf/zoo.cfg
Mode: follower

status 显示是 “Mode: standalone" , 也就是单机模式;“Mode:leader“和“Mode : follower”,表示集群模式。

故障:

[root@localhost zookeeper]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data0/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

出现无法启动问题,很有可能是防火墙的问题。zookeeper使用的端口分别2181,2888,3888,应该讲相应防火墙关系。

firewall-cmd --zone=public --add-port=1000-4000/tcp --permanent 
firewall-cmd --reload

10、停止ZooKeeper服务器

     连接服务器并执行所有操作后,可以使用以下命令停止zookeeper服务器。

$ bin/zkServer.sh stop

    ZooKeeper服务器的响应:

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper3.4.10/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPE

11、总结:

  • myid必须唯一且是数字。
  • 在部署集群时,现检查集群主机上的环境。      

三、安装storm

1、解压安装包apache-storm-1.2.2.tar.gz到“/data2/frame"文件夹下

$ cd /data2/frame/
$ tar -zxvf  apache-storm-1.2.2.tar.gz
$ mv apache-storm-1.2.2 storm

2、添加环境变量

[root@nimbus storm]# vim /etc/profile

添加:

export STORM_HOME=/data1/frame/storm
export PATH=$PATH:$STORM_HOME/bin

profile生效:

[root@nimbus storm]# source /etc/profile

3、Nimbus节点storm.yaml配置

########### These MUST be filled in for a storm configuration
# storm.zookeeper.servers:
#     - "server1"
#     - "server2"
# 
# nimbus.seeds: ["host1", "host2", "host3"]

修改如下:

方法一:

# 使用主机名配置
storm.zookeeper.servers:
      - "nimbus"
      - "supervisor1"
      - "supervisor2"
  
nimbus.seeds: ["nimbus"]

把该行开头的#去掉,把- “serverx”修改成你自己主机名,注意-的前后要有空格

方法二:

# 使用ip地址配置
storm.zookeeper.servers:
      - "192.168.17.133"
      - "192.168.17.134"
      - "192.168.17.135"
  
nimbus.seeds: ["192.168.17.133"]

一般都是采用方法一。

配置解释:

      (1)storm.zookeeper.servers表示配置Zookeeper集群地址。注意,如果zookeeper集群中使用的不是默认端口,则还需要配置storm.zookeeper.port.

      (2)nimbus.seeds表示配置主控节点,可以配置多个。

其他参数的配置:

#配置数据存储路径
storm.local.dir: "/data2/frame/storm/data"

##配置节点健康检测
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
storm.local.hostname: "192.168.17.133"

#配置Storm UI
ui.port: 8080

4、Supervisor节点storm.yaml配置

将nimbus下的storm传输到supervisor节点指定目录下:

scp -r storm/ supervisor1:/data2/frame/
scp -r storm/ supervisor2:/data2/frame/  

Supervisor安装的时候,只需要指定Nimbus地址,就可以自动加入Storm集群

########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
     - "192.168.17.133"
     - "192.168.17.134"
     - "192.168.17.135"

nimbus.seeds: ["192.168.17.133"]

#配置数据存储路径
storm.local.dir: "/data2/frame/storm/data"

##配置节点健康检测
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000

storm.local.hostname: "192.168.17.134"

#配置supervisor: 开启几个端口插槽,就开启几个对应的worker进程
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

5、启动storm

(1)启动主控节点服务

./storm nimbus >/dev/null 2>&1 &
./storm ui >/dev/null 2>&1 &
./storm logviewer >/dev/null 2>&1 &

(2)启动工作节点

./storm supervisor >/dev/null 2>&1 &
./storm logviewer >/dev/null 2>&1 &

6、验证是否启动完成http://192.168.17.133:8080/


如果storm UI无法打开,查看是否关闭防火墙。(centos7下关闭防火墙

7、存在问题

(1)Storm UI 中显示的Supervisor 的个数与实际的不符

删除Supervisor中的 storm.local.dir 目录的数据,之前拷贝到各个节点的时候,把这个目录页拷贝过去了。如果 storm.local.dir的目录为空的话,每个Supervisor就会创建自己的ID。

 Storm ui展示主机名

(2)每台storm这里hostname配置自己的ip地址

storm.local.hostname: "192.168.2.150"
(3)日志链接链接失败

         需启动LogView服务

./storm logviewer >/dev/null 2>&1 &

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值