Storm集群安装配置详细步骤(接上篇VM安装及Ubuntu安装)


所有安装包都放在home/user1/strom下 /


配置七台主机:1台nimbus主节点、3台supervisor工作节点、3台zookeeper集群节点。注意,ip地址参考自己主机分配的修改

终端执行 ifconfig 查询ip

主机名(节点)

IP地址

内存(GB)

VCPU

()

硬盘(GB)

节点运行进程

Nimbus

192.168.0.124

1

2

20

Nimbus、DRPC

Supervisor1

192.168.0.145

1

2

20

Supervisor、Worker

Supervisor2

192.168.0.146

1

2

20

Supervisor、Worker

Supervisor3

192.168.0.150

1

2

20

Supervisor、Worker

Zookeeper1

192.168.0.147

1

2

20

Leader/Follower

Zookeeper2

192.168.0.149

1

2

20

Follower/ Leader

Zookeeper3

192.168.0.152

1

2

20

Follower/ Leader(zookeeper集群中只有一个Leader)

















克隆七台主机,修改每台主机的主机名、hosts文件,为每台主机配置静态IP地址、设置SSH免秘钥登录,

(1)   修改主机名字

七台分别为:nimbus、supervisor1~supervisor3、zookeeper1~zookeeper3。

hostname     //查看主机名

sudo vi /etc/hostname

linux vi操作:x 删除原来的主机名, 点insert 输入新主机名, esc 之后,:wq

保存之后退出

修改完之后需要注销,否则hosts文件无法打开

(2)   配置hosts

sudo gedit /etc/hosts

 

127.0.0.1         localhost

#127.0.1.1       nimbus

192.168.0.124 nimbus

192.168.0.145 supervisor1

192.168.0.146 supervisor2

192.168.0.150 supervisor3

192.168.0.147 zookeeper1

192.168.0.149 zookeeper2

192.168.0.152 zookeeper3

 

# The following lines are desirable for IPv6 capable hosts

::1     ip6-localhostip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

注意不要忘了第二行的#,注释掉一个地址


1、安装JDK

下载jdk1.8.0_151压缩包到虚拟机的/home/user1/storm文件夹下

jdk下载官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在终端运行以下命令

cd storm //进入存放jdk压缩包的文件夹
tar zxf  jdk-8u151-linux-x64.tar.gz
sudo gedit /etc/profile  //打开并编辑profile文件

#文件部分内容:
if [ -d /etc/profile.d ]; then
  for i in/etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  #需要添加部分
  # Java Environment Path(注意修改自己的路径和jdk版本)
  export JAVA_HOME=/home/user1/storm/jdk1.8.0_151
  export PATH=$PATH:$JAVA_HOME/bin
  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  unset i
fi

source /etc/profile  //使/etc/profile文件生效

最后,在终端使用java –version命令测试Java是否可以正常运行,如输出JDK的版本信息,则安装成功。

2、Zookeeper介绍及安装部署

Zookeeper集群的介绍及安装部署可以参考该博主的详细介绍

(1)配置zk节点的hosts文件:配置3台机器的ip地址和主机名的对应关系:克隆主机时已经配置过了,此步可以省略

(2)解压安装配置第一台zk

tar zxf zookeeper-3.4.11.tar.gz
cd zookeeper-3.4.11
创建快照日志存放目录:
mkdir -p dataDir
创建事务日志存放目录:
mkdir dataLogDir

【注意】:如果不配置dataLogDir,那么事务日志也会写在dataDir目录中。这样会严重影响zk的性能。因为在zk吞吐量很高的时候,产生的事务日志和快照日志太多。

修改配置文件,添加如下内容:

cd conf 
mv zoo_sample.cfg zoo.cfg 
sudo gedit zoo.cfg
# 存放数据文件
dataDir=/usr/local/zookeeper-3.4.6/dataDir
# 存放日志文件
dataLogDir=/usr/local/zookeeper-3.4.6/dataLogDir
# zookeeper cluster,2888为选举端口,3888为心跳端口
server.1=Zookeeper1:2888:3888
server.2= Zookeeper2:2888:3888
server.3= Zookeeper3:2888:3888

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字:

cd ..
cd dataDir
touch myid
echo 1 > myid
(3)远程复制第一台的zk到另外两台上,并修改myid文件为2和3(路径名中的user1的1是123的1)
scp -rp zookeeper-3.4.11 user1@192.168.0.149:/home/user1/storm
scp -rp zookeeper-3.4.11 user1@192.168.0.152:/home/user1/storm

4. 启动和关闭zk

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:(三个都需要启动,切记!!)

cd storm/zookeeper-3.4.11
bin/zkServer.sh start

 

查看状态bin/zkServer.sh status

在查看状态时可能会出现虽然已经started了,但是status显示的是Error,这里可以查看一下zookeeper-3.4.11文件夹下的zookeeper.out日志文件,上面记录的错误原因。我这里每次重新启动终端时,zookeeper都会报错

错误原因是   nohup: 无法运行命令'java': 没有那个文件或目录

解决方法:每次都要执行source /etc/profile,使环境变量生效.....(很无语,不知道为什么要这样)

关闭zookeeper服务

bin/zkServer.sh stop

5. 脚本定期清理zk快照和日志文件

正常运行过程中,ZK会不断地把快照数据和事务日志输出到dataDir和dataLogDir这两个目录,并且如果没有人为操作的话,ZK自己是不会清理这些文件的。 我这里采用脚本切割。

cd /user1/storm/zookeeper-3.4.11/
sudo gedit clean_zklog.sh //这里我是直接在目录下新建文件再复制粘贴上的~(用命令写有可能会被限制权限)
#!/bin/bash
#Description:This script is used to clear zookeeper snapshot file and transaction logs.

# Snapshot file dir.
dataDir=/user1/storm/zookeeper-3.4.11/dataDir/version-2

# Transaction logs dir.
dataLogDir=/user/storm/zookeeper-3.4.11/dataLogDir/version-2

#Leave 3 files 
count=3 
count=$[$count+1] 
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f 
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f 
每个Zookeeper集群节点配置周期性任务,每个星期日的0点0分执行:
crontab -e
0 0 * * 0 /usr/local/zookeeper-3.4.6/clean_zklog.sh

3、 安装Storm依赖库

(1)安装ZeroMQ和JZMQ

 

安装m4  libtool  automake  autoconf  libsodium

         在安装这两个组件之前,我强烈建议你检查一下你是否已经安装了上面这写组件,因为他们会在安装ZeroMQ和JZMQ时用到,如果你不想在后续安装的时候频繁的被打断,那就索性先一股脑的安装了吧。网上有一些安装教程使用:

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz 
的方式安装,我不建议使用这种方法,因为这样安装到的版本比较低,所以我推荐大家到它们的官网上去下载最新的安装包。
我是在root下安装的~~~非root用户有些地方可能权限不够,执行命令:su
PS:安装有顺序~~
(1)m4

       下载地址:http://ftp.gnu.org/gnu/m4/

       我下载的是:m4-1.4.18.tar.gz

tar -xzvf m4-1.4.18.tar.gz 
cd m4-1.4.18
./configure 
make 
make install

(2)libtool

          下载地址:http://mirrors.ustc.edu.cn/gnu/libtool/

           我使用的是libtool-2.4.6.tar.gz         

tar -xzvf libtool-2.4.6.tar.gz 
cd libtool-2.4.6
./configure
make 
make install

(3)autoconf

        下载地址:http://ftp.gnu.org/gnu/autoconf/

        我下载的是:autoconf-2.69.tar.gz   

tar -xzvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure
make
make install
(4)automake

      下载地址:http://ftp.gnu.org/gnu/automake/

       我下载的是:automake-1.15.tar.gz

tar xzvf automake-1.15.tar.gz
cd automake-1.15
./configure
make 
make install

(5)libsodium

      下载地址:https://github.com/jedisct1/libsodium

       我下载的是:libsodium-master.zip

unzip libsodium-master.zip
cd libsodium-master
./autogen.sh
./configure
make && make check
make install


(2)安装ZeroMQ

       跟上面打安装步骤类似,先是下载安装包,下载地址:http://download.zeromq.org/

       我使用的是最新版本的 zeromq-4.1.4.tar.gz  

tar -xzvf zeromq-4.1.4.tar.gz  
cd zeromq-4.1.4
./autogen.sh
./configure  
make  
make install 

安装ZeroMQ可能遇到的问题:

一种解决办法是把/usr/share/aclocal/pkg.m4文件拷贝到/usr/share下面其他有版本的aclocal-x.x.x下面 
譬如

cp /usr/share/aclocal/pkg.m4 /usr/local/share/aclocal-1.15/
cp /usr/share/aclocal/pkg.m4  /usr/local/share/aclocal/

如果不行的话,确认libsodium库安装成功之后,将zmq的文件删掉,重新编译安装一次

(3)安装JZMQ

      下载地址:https://github.com/zeromq/jzmq

       直接下载.zip文件就可以了。我使用的是jzmq-master.zip

       unzip jzmq-master.zip

unzip jzmq-master.zip
cd jzmq-master
./autogen.sh
./configure  
make  
make install  

在编译的过程中,可能会出现以下问题:

(1)解决方法——执行该命令:

touch src/classdist_noinst.stamp

(2)解决方法:

编译class,命令如下:(如果不能执行javac,先查看一下环境变量是否配好:sudo gedit /etc/profile ,如果配好了则重新source /etc/profile)

cd src/org/zeromq/
javac  *.java

4、安装Storm发行版

需要在Nimbus和Supervisor节点上安装Storm发行版

(1)下载Storm-0.10.0

 wget http://mirror.bit.edu.cn/apache/storm/apache-storm-0.10.0/apache-storm-0.10.0.tar.gz

(2)解压到安装目录/home/storm

tar –zxvf apache-storm-0.10.0.tar.gz
mv apache-storm-0.10.0 storm-0.10.0    //修改文件名 mv [原文件名] [修改后文件名]

(3) 配置storm.yaml文件

Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:

gedit /home/qj/storm/storm-.10.0/conf/storm.yaml

########### These MUST be filled infor a storm configuration
storm.zookeeper.servers:
  - "Zookeeper1"
  - "Zookeeper2"
  - "Zookeeper3"
nimbus.host:"Nimbus"
storm.local.dir:"/home/qj/storm/storm-0.10.0/workdir"
supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703
 
# ##### These may optionally befilled in:
#   
## List of custom serializations
# topology.kryo.register:
#     - org.mycompany.MyType
#     - org.mycompany.MyType2:org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
#     - org.mycompany.MyDecorator
#
## Locations of the drpc servers
drpc.servers:
 - "Nimbus"

(4) 启动Storm各个守护进程

  a、先开启zookeeper服务

b、 然后分别在nimbus节点和supervisor节点开启后台守护进程

① nimbus节点启动:nimbus、drpc、ui

supervisor节点启动:supervisor


然后,打开浏览器,输入默认的Storm UI 网址(nimbus:8080)。若可以看到Storm UI界面(如下),storm集群安装成功。


至此,Storm-0.10.0集群的安装与部署工作完成!由于后来开七台虚拟机太卡,我就将zookeeper配置在supervisor上,注意zoo.cfg、storm.yaml的正确配置即可!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值