1.安装包准备
storm:apache-storm-1.1.0.tar
kafka:kafka_2.11-0.10.1.0
zookeeper:zookeeper-3.4.8.tar
jdk:jdk-8u171-linux-x64.tar
2.环境准备
此次安装准备三台服务器:分别是 192.168.2.24,192.168.2.41,192.168.2.42
修改hostname和ip映射关系
vim /etc/hosts
在里面新增
192.168.2.24 scrs01
192.168.2.41 scrs02
192.168.2.42 scrs03
保存退出
vim /etc/sysconfig/network
HOSTNAME=scrs01
保存退出
然后让修改生效;
hostname scrs01
注意:这里每个服务器都需要配置(ip和hostname映射,用到哪些就配置哪些),可以通过ping hostname看是否生效
3.jdk安装
采用tar命令解压jdk安装包
tar -zxvf /home/kafkazookeeperstorm/source/jdk-8u171-linux-x64.tar.gz
修改环境变量(最后一起贴出来)
vim /etc/profile
使环境变量生效
source /etc/profile
然后查看是否生效,可以用 java -version查看是否有版本信息
安装完成后,将jdk环境拷贝到其它服务器上
4.zookeeper安装
解压zookeeper安装包
tar -zxvf /home/kafkazookeeperstorm/source/zookeeper-3.4.8.tar.gz
同样需要在profile文件中添加环境变量(最后一起贴出来)
检查环境变量是否生效
zkServer.sh start
如果环境变量没有生效,则会提示找不到zkServer.sh
*修改配置文件
将conf下面原来的配置文件重命名为zoo.cfg,并修改其内容
vim zoo.cfg
内容如下
tickTime=2000
initLimit=10
syncLimit=5
#数据文件路径(需要先创建好文件)
dataDir=/home/kafkastorm/zookeeper/zookeeperData
#日志路径(需要先创建好文件)
dataLogDir=/home/kafkastorm/zookeeper/zookeeperDataLog
#端口
clientPort=2181
#下面配置的是zookeeper集群的配置
server.1=scrs01:2888:3888
server.2=scrs02:2888:3888
server.3=scrs03:2888:3888
注意:上面的内容中,dataDir 和 dataLogDir两个路径需要提前创建好,并有写的权限。server.x 这个 1 2 3可以随便取值。
保存退出
在上面dataDir文件路径文件夹下面创建一个名为 myid的文件,并在里面只写入一个值,就是上面server.x=y:2888:3888中的x的值,注意,每个服务器中这个myid文件的值不一样,需要一一对应。
启动zookeeper
分别将三台服务器的zookeeper都启动
zkServer.sh start
可以通过 jps命令查看是否启动
查看zookeeper状态(可以看到具体哪台服务器是 leader,哪些是 flower)
zkServer.sh status
如果需要测试zookeeper集群是否生效,可以通过客户端连接来测试
zkCli.sh
然后在一台服务器的zookeeper上设置值,其它两台获取值,如果能数据同步,环境搭建完成。
5.storm安装
解压storm安装包
tar -zxvf /home/kafkazookeeperstorm/source/apache-storm-1.1.0.tar.gz
修改配置文件storm.yaml
vim storm.yaml
内容如下(具体每个配置意义可以百度,这里不做详细说明):
下面设置集群主机,让集群中所有的节点可以从主机下载拓扑以及配置文件,主机上运行的就是nimbus,而其他节点就是supervisor进程,这里scrs01为nimbus,而scrs02和scrs03为supervisor
#zookeeper服务列表
torm.zookeeper.servers:
- "scrs01"
- "scrs02"
- "scrs03"
#storm数据目录
storm.local.dir: "/home/kafkazookeeperstorm/storm/data"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
nimbus.host: "scrs01"
drpc.servers:
- "scrs01"
worker.childopts: "-Xmx2048m"
将安装环境拷贝到其它服务器上 scp命令,拷贝完毕后,不需要修改配置文件,检查storm.local.dir文件路径是否存在。
服务启动:
只在主机nimbus节点上启动nimbus服务(scrs01服务器,也指storm配置文件中nimbus.host的服务器)
nohup bin/storm nimbus >> /dev/null &
在supervisor节点服务器上启动 supervisor服务(其它服务器)
nohup bin/storm supervisor >> /dev/null &
在nimbus主机节点启动drpc服务
nohup bin/storm drpc >> /dev/null &
在nimbus主机节点启动ui服务
nohup bin/storm ui >> /dev/null &
通过jps查看core进程是否启动,启动之后,可以通过nimbus主节点服务器的ip访问进入web管理页面:
http://ip:8080/index.html
如果有storm相关内容表示storm环境成功
6.kafka安装
解压kafka安装包
tar -zxvf /home/kafkazookeeperstorm/source/kafka_2.11-0.10.1.0.tgz
修改kafka配置文件server.properties
具体内容如下:
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=0
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#上面是默认配置,下面是需要修改或添加的值
#这个不能重复,集群中的每一个kafka的broker.id都不能重复
broker.id=0
#指定host.name 不然当用java程序连接时,连不上
host.name=192.168.93.130
#数据日志路径
log.dirs=/home/kafkastorm/kafka/datalog
#端口
port=9092
#zookeeper集群服务列表
zookeeper.connect=scrs01:2181,scrs02:2181,scrs03:2181
内容配置完成后,保存退出,环境配置拷贝到其它服务器上,注意修改 配置文件中的 broker.id的值
启动kafka(在启动之前,需要确定zookeeper是否都已启动)
bin/kafka-server-start.sh config/server.properties &
注意: & 表示后台启动
启动完成后,可以通过 jps命令查看kafka是否启动
也可以通过zookeeper客户端 zkCli.sh 来查看zookeeper服务中是否有kafka的配置文件夹
还可以通过 kafka的生产者和消费者服务命令来测试是否成功。
备注:环境变量如下,在/ect/profile文件末尾加jdk、zookeeper如下环境变量配置内容JAVA_HOME=/home/kafkazookeeperstorm/jdk/jdk1.8.0_171
CLASS_PATH=.:$JAVA_HOME/lib
ZOOKEEPER_HOME=/home/kafkazookeeperstorm/zookeeper/zookeeper-3.4.8
PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
export PATH JAVA_HOME CLASS_PATH ZOOKEEPER_HOME