Kafka学习笔记-集群搭建Linux

环境搭建

因为Kafka运行依赖JDK和Zookeeper,所以首先要搭建依赖工具。本次服务器部署在Linux系统中。

1、安装JDK

JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载后上传到服务器目录/home/work/tools(目录名称根据自已喜好选择),或者直接在Linux服务器上使用wget命令下载JDK,省去上传的步骤,命令如下:

64位JDK:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

32位JDK:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-i586.tar.gz"
tar xzf jdk-8u141-linux-i586.tar.gz

然后解压JDK压缩包,命令:tar -zxvf jdk-8u141-linux-x64.tar.gz

然后配置JDK环境变量,环境变量配置需要编辑~/.bash_profile

#vim ~/.bash_profile

添加如下配置

export JAVA_HOME=/home/work/tools/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin

环境变量生效

#source ~/.bash_profile

走到这一步可以验证JDK是否设置成功

#java -version

如果打印出jdk相关信息,恭喜你安装完成

~/.bash_profile设置环境变量后可能只对当前终端生效,遇到这种情况可以编辑~/.zshrc,在最后一行添加source ~/.bash_profile,这样就会一直生效。

2、安装Zookeeper

Kafka一般情况下是部署为集群提供服务,Broker、Topic注册,生产者和消费者负载均衡,以及消息消费进度都需要保存到Zookeeper,所以还需要部署Zookeeper。

下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/

同样解压压缩包,复制conf/zoo_sample.cfg成conf/zoo.cfg

设置ZK数据和日志路径

# vim zoo.cfg

dataDir=/home/work/services/zookeeper/zookeeper-3.4.13/data
dataLogDir=/home/work/services/zookeeper/zookeeper-3.4.13/logs

执行如下命令后台启动ZK

#nohup ./bin/zkServer.sh start &

检查启动是否成功

#./bin/zkServer.sh status

打印如下则启动成功

ZooKeeper JMX enabled by default
Using config: /home/work/services/zookeeper/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: standalone

以下为配置文件说明

#tickTime:
这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
#initLimit:
这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
#syncLimit:
这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
#dataDir:
快照日志的存储路径
#dataLogDir:
事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
#clientPort:
这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

3、安装Kafka

下载地址:http://kafka.apache.org/downloads

解压压缩包,复制出三份conf/server.properties,分别为server1.properties、server2.properties、server3.properties

修改对应server.properties中的broker.id值分别为1、2、3,监听地址修改为advertised.listeners=PLAINTEXT://172.16.115.130:9092

advertised.listeners=PLAINTEXT://172.16.115.130:9093

advertised.listeners=PLAINTEXT://172.16.115.130:9094

然后启动第一台

nohup bin/kafka-server-start.sh config/server1.properties &

同样的方式启动剩余两台

下面使用Kafka创建Topic

#bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

然后在该Topic下生产消息

#bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

>This is a message

>This is another message

启动一个消费者

#bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

输出如下:

This is a message

This is another message

至此环境搭建完毕

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值