原生腾讯云centos7.5 Apache Storm搭建指南

写文章前先重装系统,保证环境和谐(没说要你重装)。还有个人用的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

备注

备注所有内容以完善更新,此环境可以作为生产环境使用了!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342