写文章前先重装系统,保证环境和谐(没说要你重装)。还有个人用的root权限,非root用户赋权操作请自行处理
参考文献
此文献有部分不适配新版环境,仅作参考。
环境确认
1.centos7.5
2.jdk1.8.0_201
3.ZooKeeper-3.4.13
4.apache-storm-1.2.2
NO_1.验证JAVA环境
java -version
不存在会找不到指令,我们下面开始安装java
1.1下载安装包
使用以下链接 - www.oracle.com下载最新版本的JDK
这里使用的版本是最新的Java SE Development Kit 8u201,安装包名是jdk-8u201-linux-x64.tar.gz,推荐安装与本地开发相同的环境,不然遇到各种奇怪的无法解析JAR问题,那就头疼了。
建立一个目录存储安装包,使用文件管理工具(个人使用lrzsz,或者使用简单的FileZilla),上传安装包,cd到安装目录下(个人放在了~/package)
cd ~/package
tar -zxf jdk-8u201-linux-x64.tar.gz
1.2移动到/usr/local/java文件夹
mkdir /usr/local/java
mv jdk1.8.0_201 /usr/local/java/
1.3设置路径
设置PATH和JAVA_HOME,请添加以下命令到/etc/profile文件(此文件处于系统级开机进程中,会适用到所有用户)
export JAVA_HOME =/usr/local/java/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
应用变更
source /etc/profile
1.4维护java连接
update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_201/bin/java 100
1.5验证可用性
java -version
NO_2.ZooKeeper框架安装
要在您的计算机上安装ZooKeeper框架,请访问以下链接并下载最新版本的ZooKeeper http://zookeeper.apache.org/releases.html
到目前为止,最新版本的ZooKeeper是3.4.13(zookeeper-3.4.13.tar.gz)。
2.1解压tar文件
cd ~/package
tar -zxf zookeeper-3.4.13.tar.gz
cd zookeeper-3.4.13
mkdir data
cd ~/package
mkdir /usr/local/zookeeper
mv zookeeper-3.4.13 /usr/local/zookeeper/
修改zookeeper配置文件
注意,zookeeper的配置文件当前版本默认为zoo.cfg,但设定档内只有zoo_sample.cfg是无法使用的,所以我们复制一份出来。
cp ./conf/zoo_sample.cfg ./conf/zoo.cfg
修改zoo.cfg档内容(dataDir可以依个人习惯归类到一起,这个目录是必须存在的),其他档案内容依个人需求。默认配置是没有集群的,需要了解如何运行单例或者集群模式请关注
Storm开发——Zookeeper集群设置(集群)
Storm开发——Zookeeper集群设置(单例)
dataDir=/usr/local/zookeeper/zookeeper-3.4.13/data
启动ZooKeeper服务器
bin/zkServer.sh start
bin/zkServer.sh stop#这个是关闭服务
响应如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.13/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
此时我们已经安装并启动了ZooKeeper虚拟机服务,Apache Storm框架正是在其上跑的(这话不是说着玩的,千万别忘了启动ZooKeeper)。
NO_3.Apache Storm框架安装
3.1下载Storm
要在您的计算机上安装Storm框架,请访问以下链接并下载最新版本的Storm http://storm.apache.org/downloads.html
到目前为止,最新版本的Storm是“apache-storm-1.2.2.tar.gz”。
3.2解压tar文件
cd ~/package
tar -zxf apache-storm-1.2.2.tar.gz
cd apache-storm-1.2.2
mkdir data
mkdir /usr/local/apache-storm
mv apache-storm-1.2.2 /usr/local/apache-storm/
3.3配置文件
在./conf/storm.yaml中添加以下内容
配置详解见Storm配置文件详解
#注意空格不是假的,是必须品
storm.zookeeper.servers:#为嘛要开zookeeper知道吗?
- "localhost"
storm.local.dir: "/usr/local/storm/data"#路径随意
nimbus.host: "localhost"#本地测试
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
3.4启动!
启动ZooKeeper(cd /usr/local/zookeeper/zookeeper-3.4.13)
bin/zkServer.sh start
启动Nimbus(cd /usr/local/apache-storm/apache-storm-1.2.2)
bin/storm nimbus
启动Supervisor
bin/storm supervisor
启动UI
bin/storm ui
使用指令检查运行环境是否正常
jps
输出如下
11920 QuorumPeerMain
26228 nimbus
26298 core
26269 Supervisor
26542 Jps
3.5欣赏下成果
键入http//localhost:8080或者http//IP:8080,就可以进入管理界面了。
重点:配置正常的运行环境和容灾环境
一、进行安全配置
1.centos7使用的firewall防火墙,目前的我们需要开放一下的端口
> firewall-cmd --zone=public --list-ports
9090/tcp 2181/tcp 3888/tcp 2888/tcp 6627/tcp 6700/tcp 6701/tcp 6702/tcp 6703/tcp
# 尤其需要注意,因为个人对配置文件有修改,所有不一定完全一致,以下是大致说明,请一一对照
# storm-ui:9090
# zookeeper:2181:2888:3888
# storm-nimbus:6627
# storm-supervisor-slots:6700:6701:6702:6703
2.清理log文件
没有非常多想说的,用crontab即可,记得不要把快照文件当做log清理了,尤其是data目录下的文件
3.配置系统环境
> vi /etc/profile
#添加以下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export STORM_HOME=/usr/local/apache-storm-2.0.0
export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$ZOOKEEPER_HOME/lib:
PATH=$STORM_HOME/bin:${JAVA_HOME}/bin:$ZOOKEEPER_HOME/bin:$PATH
# 记得source一下
二、进行用户配置
这部分将不进行说明,其实主要的重点就是
1.安装和配置文件时请切换到你单独为这些软件配置的用户,尤其是他们写log和data时的文件夹要给予充分的权限
2.将配置环境的逻辑写在系统层,不要写在用户层
3.配置服务时记得指定用户,要是用root的话前面做的就都功亏一篑了。
三、配置Zookeeper
将zookeeper配置为服务
> cd /etc/init.d/
> vi zookeeper
#!/bin/bash
#chkconfig:2345 10 90
#description:service zookeeper
export ZOO_LOG_DIR=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/logs
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
case "$1" in
start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;;#开启服务
start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;;#前台执行
stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;;#停止服务
status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;;#检查服务状态
restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;;#重启服务
upgrade)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;;#升级服务
print-cmd)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;;#查看服务启动参数
*) echo "require start|start-foreground|stop|status|restart|print-cmd";;#命令提示行
esac
> :wq
> chkconfig --add zookeeper
此时zookeeper的服务算是配置完成了,可以通过systemctl查看下服务运行状态。
补充一些注意事项
1.尽量不要直接复制原运行环境的zookeeper使用,会导致无法运行的(因为快照冲突,比如你把之前的leader复制过来,启动以后将会与原来的leader冲突),就算要复制记得把log和快照全部清空
2.zookeeper需要将主机配置成0.0.0.0才可以对外开放socket通讯,所以为了配置的一致性,推荐在hosts文件处做手脚,以方便配置,从而不要修改配置文件
四、配置Storm
这里我们使用supervisor管理Storm
1.安装supervisor
> yum install supervisor
2.修改supervisor的配置文件
> vi /etc/supervisord.conf
#修改
[include]
files = supervisord.d/*.ini
#为
[include]
files = supervisord.d/*.conf
#不要问为啥,问就是喜欢
3.配置开机自启动
#第一步建立软连接
> ln -s /usr/local/apache-storm-2.0.0/bin/storm /usr/bin/storm
#第二步书写supervisor脚本
> cd /etc/supervisord.d/
> vi storm-nimbus.conf
[program:storm-nimbus]
command=storm nimbus
directory=/usr/local/apache-storm-2.0.0/bin
autorestart=true
user=root
> :wq
> vi storm-ui.conf
[program:storm-ui]
command=storm ui
directory=/usr/local/apache-storm-2.0.0/bin
autorestart=true
user=root
> :wq
> vi storm-supervisor.conf
[program:storm-supervisor]
command=storm supervisor
directory=/usr/local/apache-storm-2.0.0/bin
autorestart=true
user=root
> :wq
#第三步,重载supervisor配置
> supervisorctl reload
# 第四步,查看结果
> supervisorctl status
storm-nimbus RUNNING pid 25569, uptime 1 day, 3:11:35
storm-ui RUNNING pid 1215, uptime 1 day, 9:27:17
备注
备注所有内容以完善更新,此环境可以作为生产环境使用了!