搭建服务相关软件下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html //官网地址,找自己相关需要的版本下载!我的网盘链接 提取码:a0ue
1.JDK安装:
1-1:
将下载好的jdk上传到服务可以在服务器上安装 yum -y install lrzsz
,就可以使用xhell直接拖了
mkdir /opt/JDK //创建目录
tar -xvf jdk-8u231-linux-x64.tar.gz -C /opt/JDK/ //指定解压tar包
ls /opt/JDK/ //查看确认是否解压成功
1-2:配置环境变量:
vi /etc/profile
在文件的末尾添加下面脚本,根据自己jdk安装位置修改:
export JAVA_HOME=/opt/JDK/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
1-3:重启配置文件:
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
这样jdk就安装完毕!准备工作完成一步,下面进行搭建zookeeper集群!
**
2.安装部署zookeeper集群
**
2-1:准备工作:
下载zookeeper源码包:
1.wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
2.我的网盘链接 提取码:a0ue
mkdir /opt/zookeeper
cd /opt/zookeeper
tar -xvf zookeeper-3.4.14.tar.gz -C /opt/zookeeper/
2-2:创建集群目录,此处创建三节点,master(主)、slave1、slave2,并将解压好的文件移动到各个节点
mkdir -p master slave1 slave2
cp -rf zookeeper-3.4.14/* master
cp -rf zookeeper-3.4.14/* slave1
cp -rf zookeeper-3.4.14/* slave2
2-3:配置zk配置信息
将zoo_sample覆盖为zoo,并复制到各个节点
[root@localhost zookeeper]# mv master/conf/zoo_sample.cfg master/conf/zoo.cfg
[root@localhost zookeeper]# ls master/conf/
configuration.xsl log4j.properties zoo.cfg
2-4:修改配置如下:
vi master/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/master/tmp
clientPort=2181
dataLogDir=/opt/zookeeper/master/datalog
server.0=localhost:2888:3888
server.1=localhost:2889:3889
server.2=localhost:2890:3890
cp master/conf/zoo.cfg slave1/conf/
cp master/conf/zoo.cfg slave2/conf/
sed -i "s/clientPort=2181/clientPort=2182/" slave1/conf/zoo.cf
sed -i "s/clientPort=2181/clientPort=2183/" slave2/conf/zoo.cf
sed -i "s/master/slave1/" /opt/zookeeper/slave1/conf/zoo.cfg
sed -i "s/master/slave2/" /opt/zookeeper/slave2/conf/zoo.cfg
将master、slave1、slave2对应的zoo.cfg中clientPort分别修改为2181、2182、2183,dataDir修改好、dataLogDir创建好。
然后再对应的dataDir目录下创建myid文件如下(注意0/1/2要对应上面的server.0/1/2):
cd /opt/zookeeper/master/ && mkdir datalog tmp
cd /opt/zookeeper/slave1/ && mkdir datalog tmp
cd /opt/zookeeper/slave2/ && mkdir datalog tmp
cd /opt/zookeeper/master/tmp/ && echo "0" > myid && echo "1" > /opt/zookeeper/slave1/tmp/myid && echo "2" > /opt/zookeeper/slave2/tmp/myid
2-5:启动zookeeper三个节点:
嘿嘿:制作启动脚本啊!
vim /opt/start.sh
#!/bin/bash
#zookeeper启动命令集
/opt/zookeeper/master/bin/zkServer.sh start
/opt/zookeeper/slave1/bin/zkServer.sh start
/opt/zookeeper/slave2/bin/zkServer.sh start
chmod +x start.sh
//授权
/opt/start.sh
//启动zookeeper服务
ss -antplu
//查看端口
3:部署kafka
3-1:下载kafka
-
wget http://mirror.bit.edu.cn/apache/kafka/2.2.1/kafka_2.11-2.2.1.tgz
2.我的网盘链接 提取码:a0ue
tar -xvf kafka_2.11-2.2.1.tgz -C /opt/
mv /opt/kafka_2.11-2.2.1/ /opt/kafka2.11
cd /opt/kafka2.1
2-2:启动kafka:
nohup /opt/kafka2.11/bin/kafka-server-start.sh config/server.properties &
2-3:创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.//系统显示已创建topic
2-4:测试一下topic啊!
查看topic
/opt/kafka2.11/bin/kafka-topics.sh --list --zookeeper localhost:2181
查看default-group堆积情况
/opt/kafka2.11/bin/kafka-consumer-groups.sh --bootstrap-server master:9092 --describe --group default-group
它这里会执行失败,是一个坑,我们下面解决,暂时不理会它
2-5:开启2个页面:进行测试一下kafka:
使用kafka-console-producer.sh 发送消息
/opt/kafka2.11/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
使用kafka-console-consumer.sh消费消息
/opt/kafka2.11/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
这里测试完毕发现kafka能正常使用了,但是它只能在本地使用,就像上面我们遇到的哪个坑,我们现在来填:
为了使外部能访问kafka,我们需要去修改config/server.properties
配置文件,改好的文件在下方,看各自的需求在次更改:
vim /opt/kafka2.11/config/server.properties
###集群中唯一
broker.id=0
####本地ip:端口
listeners=PLAINTEXT://192.168.1.32:9092 #修改成你自己装kafka服务器的ip地址
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
#### 一个topic的partition个数
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
##### 每个partition的副本
replication.factor=2
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
####zookeeper集群.
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
########可删除topic
delete.topic.enable=true
嘿嘿可选!安装图形可视化工具!
下载地址:http://www.kafkatool.com/download.html