Kafka运行环境搭建

最终效果

在第二个shell终端输入“Hello,Kafka!”消息到主题topic-demo,第一个shell终端接受到消息。
在这里插入图片描述

操作系统信息

[root@localhost opt]# uname -a
Linux localhost 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

JDK的安装与配置

  1. 下载安装包jdk-8u251-linux-i586.tar.gz,复制到/opt目录下
  2. 将/opt目录下的安装包解压
[root@localhost opt]# tar zxvf jdk-8u251-linux-i586.tar.gz
  1. 配置JDK的环境变量,修改 /etc/profile
[root@localhost jdk1.8.0_251]# vi /etc/profile

在文件中添加如下参数

export JAVA_HOME=/opt/jdk1.8.0_251
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./://$JAVA_HOME/lib:$JRE_HOME/lib

wq保存退出后,执行 source /etc/profile 命令使配置生效

[root@localhost ~]# source /etc/profile
  1. 通过 java -version 命令验证JDK是否安装成功
[root@localhost ~]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode)

注意:如果如下错误:No such file or directory

[root@localhost ~]# java -version
-bash: /opt/jdk1.8.0_251/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

则需要执行 yum -y install glibc.i686 命令

[root@localhost ~]# yum -y install glibc.i686

再次执行 java -version 命令后,安装成功

ZooKeeper安装与配置

ZooKeeper是安装Kafka集群的必要组件,Kafka通过ZooKeeper来实施对元数据信息的管理,包括集群、broker、主题、分区等内容
ZooKeeper是一个开源的分布式协调服务,分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护等功能。
ZooKeeper中共有三个角色:
leader、follower、observer,同一时刻ZooKeeper集群中只会有一个leader,其他的都是follower核observer。observer不参与投票,默认情况下ZooKeeper中只有leader和follower两个角色。

安装ZooKeeper

  1. 在我上传的资源中下载安装包 zookeeper-3.4.14.tar.gz
  2. 将安装包放到/opt目录下,然后解压缩
[root@localhost opt]# tar zxvf zookeeper-3.4.14.tar.gz
  1. 向 /etc/profile 配置文件中添加如下内容
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin

执行 source /etc/profile 命令使配置文件生效

[root@localhost ~]# source /etc/profile
  1. 修改 ZooKeeper 的配置文件,首先进入 $ZOOKEEPER_HOME/conf 目录,并将 zoo_sample.cfg 文件修改为 zoo.cfg
[root@localhost ~]# cd $ZOOKEEPER_HOME/conf
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
  1. 然后修改 zoo.cfg 配置文件
[root@localhost conf]# vi zoo.cfg
# ZooKeeper 服务器心跳时间,单位为ms
tickTime=2000
# 投票选举 leader 的初始化时间
initLimit=10
# leader 与 follower 心跳检测最大容忍时间,响应超过 syncLimit*tickTime,leader 认为 follower 失效,从服务器列表中删除 follower
syncLimit=5
# 数据目录
dataDir=/tmp/zookeeper/data
# 日志记录
dataLogDir=/tmp/zookeeper/log
# ZooKeeper 对外服务端口
clientPort=2181
  1. 创建data和log目录
[root@localhost ~]# mkdir -p /tmp/zookeeper/{data,log}
  1. 在 /tmp/zookeeper/data目录下创建一个 myid 文件,并写入一个数据,如:0. myid文件里存放的是服务器的编号
[root@localhost ~]# cd /tmp/zookeeper/data/
[root@localhost data]# echo 0 >> myid
  1. 启动 ZooKeeper
[root@localhost data]# cd /opt/zookeeper-3.4.14/bin/
[root@localhost bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
  1. 查看状态
[root@localhost bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone

Kafka的安装与配置

在安装完JDK和ZooKeeper之后,就可以执行Kafka broker的安装了。首先,下载 kafka_2.11-2.2.2.tgz ,放到 /opt 目录下并进行解压缩。

  1. 修改 /etc/profile 文件
[root@localhost kafka_2.11-2.2.2]# vi /etc/profile

添加如下内容

export KAFKA_HOME=/opt/kafka_2.11-2.2.2

执行 source /etc/profile 命令使配置文件生效

[root@localhost ~]# source /etc/profile
  1. 修改 broker 的配置文件
[root@localhost ~]# vi $KAFKA_HOME/config/server.properties

server.properties 配置参数如下:

# broker 的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
broker.id=0
# broker 对外提供的服务入口地址
listeners=PLAINTEXT://localhost:9092
# 存放消息日志文件的地址
log.dirs=/tmp/kafka-logs
# Kafka 所需的 ZooKeeper 集群地址
zookeeper.connect=localhost:2181/kafka
  1. 后台启动 Kafka
[root@localhost ~]# /opt/kafka_2.11-2.2.2/bin/kafka-server-start.sh /opt/kafka_2.11-2.2.2/config/server.properties &
  1. 通过 jps -l 命令查看Kafka服务进程是否已经启动
[root@localhost ~]# jps -l
2065 sun.tools.jps.Jps
1714 kafka.Kafka # Kafka服务端的进程
1636 org.apache.zookeeper.server.quorum.QuorumPeerMain

生产者与消费者

创建主题

创建一个分区数为1、副本因子为3的主题 topic-demo

[root@localhost kafka_2.11-2.2.2]# bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-demo --replication-factor 1 --partitions 4 Created topic "topic-demo".

其中,
–zookeeper 指定了Kafka所连接的ZooKeeper服务地址为 localhost:2181/kafka,
–topic 指定了所要创建主题的名称为 topic-demo,
–replication-factor 指定了副本因子为 1,
–partitions 指定了分区个数为 4,
–create 是创建主题的动作指令
还可以通过 --describe 展示主题更多具体信息

[root@localhost kafka_2.11-2.2.2]# bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-demo
Topic:topic-demo        PartitionCount:4        ReplicationFactor:1     Configs:
        Topic: topic-demo       Partition: 0    Leader: 0       Replicas: 0    Isr: 0
        Topic: topic-demo       Partition: 1    Leader: 0       Replicas: 0    Isr: 0
        Topic: topic-demo       Partition: 2    Leader: 0       Replicas: 0    Isr: 0
        Topic: topic-demo       Partition: 3    Leader: 0       Replicas: 0    Isr: 0

创建消费者

首先打开一个shell终端,通过 kafka-console-consumer.sh 脚本来订阅主题 topic-demo

[root@localhost ~]cd /opt/kafka_2.11-2.2.2/
[root@localhost kafka_2.11-2.2.2]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo

其中,
–bootstrap-server 指定了链接的Kafka集群地址为 localhost:9092,
–topic 指定了消费者订阅的主题为 topic-demo

创建生产者

再打开一个shell终端,然后使用 kafka-console-producer.sh脚本发送一条消息“Hello,Kafka!” 至主题topic-demo

[root@localhost ~]# cd /opt/kafka_2.11-2.2.2/
[root@localhost kafka_2.11-2.2.2]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo
>Hello,Kafka!
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值