kafka安装部署及操作流程

修改master主机名字

[root@server1 ~]$ hostname master
[root@server1 ~]$ hostname slave1
[root@server1 ~]$ hostname slave2

修改hosts文件

[root@server1 ~]$ vim /etc/hosts
192.168.66.128 master
192.168.66.129 slave1
192.168.66.130 slave2

修改完成后保存执行如下命令

[root@server1 ~]$ source /etc/hosts

配置Master无密码登录所有Salve

  在Master节点上生成密码对

[root@server1 ~]$ ssh-keygen -t rsa -P ''

  把id_rsa.pub追加到授权的key里面去

[root@server1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改ssh配置文件"/etc/ssh/sshd_config"

[root@server1 ~]$ vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式

重启ssh服务

[root@server1 ~]$ systemctl restart ssh

验证无密码登录本机是否成功

[root@server1 ~]$ ssh master

将公钥复制到所有的Slave机器上

[root@server1 ~]$ scp -r /root/.ssh/id_rsa.pub root@slave1:/root/
[root@server1 ~]$ scp -r /root/.ssh/id_rsa.pub root@slave2:/root/

接着配置server1节点,以下是在server2、server3节点的配置操作

"/root/"下创建".ssh"文件夹
[root@server2 ~]$ mkdir /root/.ssh
将server1的公钥追加到server2、server3的授权文件"authorized_keys"[root@server2 ~]$ cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
修改"/etc/ssh/sshd_config"
[root@server2 ~]$ vim /etc/ssh/sshd_config
RSAAuthentication yes $ 启用 RSA 认证
PubkeyAuthentication yes $ 启用公钥私钥配对认证方式
创建" server2、server3"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件中

[root@server2 ~]$ ssh-keygen -t rsa -P ''
[root@server2 ~]$ cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

将server2、server3节点的公钥"id_rsa.pub"复制到server1节点的"/root/"目录下

[root@slave1 ~]$ scp -r /root/.ssh/id_rsa.pub root@master:/root/

以下是在server1节点的配置操作

将server2、server3的公钥追加到Master的授权文件"authorized_keys"中去。
[root@server1 ~]$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
删除Slave1复制过来的"id_rsa.pub"文件

[root@server1 ~]$ rm –r /root/id_rsa.pub

jdk-8u121安装部署

上传压缩包并解压

jdk-8u121-linux-x64.tar.gz
[root@server1 ~]$ tar xvf jdk-8u121-linux-x64.tar.gz
[root@server1 ~]$ mv jdk1.8.0_121/ /usr/local/

添加Java环境变量,在/etc/profile中添加

[root@server1 ~]$ vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar
export JAVA_HOME PATH CLASSPATH

保存后刷新配置

[root@localhost ~]$ source /etc/profile

复制master节点的profile文件夹到server2和server3上

[root@localhost ~]$ scp -r /etc/profile/ root@slave1:/etc/
[root@localhost ~]$ scp -r /etc/profile/ root@slave2:/etc/

复制master节点的jdk1.8.0_121文件夹到server2和server3上

[root@localhost ~]$ scp -r /usr/local/jdk1.8.0_121/ root@slave1:/usr/local/
[root@localhost ~]$ scp -r /usr/local/jdk1.8.0_121/ root@slave2:/usr/local/

zookeeper-3.5.8安装部署

上传压缩包并解压

zookeeper-3.4.14.tar.gz
[root@localhost ~]$ tar -zxvf zookeeper-3.4.14.tar.gz
[root@localhost ~]$ mv zookeeper-3.4.14 /opt/zookeeper
[root@localhost ~]$ cd /opt/zookeeper/conf/

拷贝模板文件

[root@localhost conf]$ cp zoo_sample.cfg zoo.cfg

修改配置文件,并添加

[root@localhost conf]$ vim zoo.cfg
server.1=192.168.66.128:2888:3888
server.2=192.168.66.129:2888:3888
server.3=192.168.66.130:2888:3888

修改profile文件

[root@localhost ~]$ vim /etc/profile
export ZOOKEEPER_HOME=/opt/zookeeper/
export PATH=$ZOOKEEPER_HOME/bin:$PATH

刷新profile

[root@localhost ~]$ source /etc/profile

复制master节点的zookeeper文件夹到server2和server3上

[root@localhost zookeeper]$ scp -r /opt/zookeeper/ root@slave1:/opt/
[root@localhost zookeeper]$ scp -r /opt/zookeeper/ root@slave2:/opt/

创建myid文件

server1上执行:echo "1" > /opt/zookeeper/myid
server2上执行:echo "2" > /opt/zookeeper/myid
server3上执行:echo "3" > /opt/zookeeper/myid

启动zookeeper

[root@localhost zookeeper]$ ./bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看状态

[root@localhost zookeeper]$ ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
[root@server1 zookeeper]$ jps
9941 Jps
9725 QuorumPeerMain

kafka_2.10-0安装部署

上传解压包并压缩

kafka_2.11-2.2.0.tgz
[root@server1 ~]$ tar -zxvf kafka_2.11-2.2.0.tgz
[root@server1 ~]$ mv kafka_2.11-2.2.0 /opt/kafka
[root@server1 ~]$ cd /opt/kafka/config/

修改kafka的主配置文件 server1、server2、server3

[root@server1 config]$ vim server.properties
broker.id=1         $ 20行
advertised.listeners=PLAINTEXT://server1:9092       $ 35行
zookeeper.connect=192.168.112.140:2181,192.168.112.138:2181,192.168.112.139:2181/kafka      $ 112[root@server2 config]$ vim server.properties
broker.id=2         $ 20行
advertised.listeners=PLAINTEXT://server2:9092       $ 35行
zookeeper.connect=192.168.112.140:2181,192.168.112.138:2181,192.168.112.139:2181/kafka          $ 112[root@server3 config]$ vim server.properties
broker.id=3         $ 20行
advertised.listeners=PLAINTEXT://server3:9092       $ 35行
zookeeper.connect=192.168.112.140:2181,192.168.112.138:2181,192.168.112.139:2181/kafka          $ 112

启动三台kafka

[root@server1 bin]$ ./kafka-server-start.sh -daemon ../config/server.properties
[root@server2 bin]$ ./kafka-server-start.sh -daemon ../config/server.properties
[root@server3 bin]$ ./kafka-server-start.sh -daemon ../config/server.properties

创建一个topic主题

创建一个名为liangzg的主题,并指定该主题的分区数为3,副本数为2

[root@kafka02 bin]$ /opt/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.66.130:2181 --replication-factor 2 --partitions 3 --topic my-topic
Created topic "liangzg".        $ 创建成功
报错

Error while executing topic command : Topic "liangzg" already exists.
[2020-12-04 10:32:31,716] ERROR kafka.common.TopicExistsException: Topic "liangzg" already exists.
        at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:420)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:404)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:110)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:61)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)
 (kafka.admin.TopicCommand$)

查看当前有多少个topic主题

[root@kafka02 bin]$ /opt/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.66.130:2181
my-topic

模拟生产者

[root@kafka02 bin]$ /opt/kafka/bin/kafka-console-producer.sh --broker-list 192.168.66.129:9092 --topic my-topic

在这里插入图片描述
模拟消费者

[root@kafka03 bin]$ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.66.130:9092  --topic my-topic --from-beginningb

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/apple_54172342/article/details/112620567