初见 Kafka:Kafka 环境的搭建

版权声明:本文为博主原创文章,未经博主允许不得转载哦 (ÒωÓױ) https://blog.csdn.net/u012814856/article/details/88049936

一、引言

最近正在学习 Kafka,选择了《Kafka 权威指南》这本书进行自学。这本书相对新手来说,还是有一定的阅读难度的,像我连着序言、前言和第一章拢共读了三遍才渐渐理解了 Kafka 的相关大概概念,这还是边读边百度帮助理解的结果。

作为一个初学者,在了解了 Kafka 的入门介绍之后,就应该要着手在本地搭建一个 kafka 环境了,这里我按照书上的介绍,参考了网上的几篇博客,终于在本地虚拟机上安装上了 Kafka 的环境。这篇博客旨在记录在这一过程,以飨遇到同样问题的读者。

ps:
1. 本篇博客选择了虚拟机下的 Ubuntu18.04 系统进行 Kafka 环境的搭建,建议尽量选择 Linux 系统进行 Kafka 环境的搭建,这也是《Kafka 权威指南》作者所极力推荐的
2. 本博客中使用到的 Java、Zookeeper 和 Kafka 安装包我都放到了百度云上,供去官网下载不方便的朋友下载使用

Kafka 环境搭建 https://pan.baidu.com/s/1RAJLXAKOnry6r93jQ65-XQ 提取码:r7dt

二、安装 Java

虽然按道理说 Zookeeper 和 Kafka 只需要一个 Java 的运行环境,但是安装一个 JDK 也是比较推荐的。

1. 获取 JDK 安装包

点击 Java SE Downloads 选择自己系统适合的版本下载,或者直接使用我上传到百度云的安装包 jdk-11.0.2_linux-x64_bin.tar.gz

2. 解压安装包

创建安装目录 /usr/java

$ sudo mkdir /usr/java

上传 JDK 安装包,将其移动到 /usr/java 目录下,并解压

$ sudo chmod 775 jdk-11.0.2_linux-x64_bin.tar.gz
$ sudo tar -zxf jdk-11.0.2_linux-x64_bin.tar.gz
$ sudo mv jdk-11.0.2 /usr/java

3. 配置 Java

上一步中自动解压出来的 JDK 目录是 /usr/java/jdk-11.0.2,我们将其配置到 Linux 系统环境变量中去,方便全局访问

$ sudo vi /etc/profile

往文件里添加以下内容

# java
export   JAVA_HOME=/usr/java/jdk-11.0.2
export   CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export   PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export   JRE_HOME=$JAVA_HOME/jre

4. 验证

使 Linux 系统环境变量立即生效并验证

$ source /etc/profile
$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
$ javac -version
javac 11.0.2

这一步并非是必须的,只需要你的环境里面有 Java 运行环境即可,JDK 安不安装都是可以的,当然,安装上了有备无患自然是更好的。

三、安装 Zookeeper

根据《Kafka 权威指南》作者的说法:

Kafka 使用 Zookeeper 保存集群的元数据信息和消费者信息。

其中集群的元信息包括消息的键值、偏移值等等。同样的,虽然 Kafka 发行版会自带一个 Zookeeper,但是安装一个完整的 Zookeeper 同样是有备无患的。

1. 获取 Zookeeper 安装包

点击 Apache Zookeeper Download 进行下载,或者直接使用我上传到百度云的安装包 zookeeper-3.4.13.tar.gz

2. 解压安装包

这里设定安装目录为 /usr/local/zookeeper,数据目录为 /var/lib/zookeeper

$ sudo tar -zxf zookeeper-3.4.13.tar.gz
$ sudo mv zookeeper-3.4.13 /usr/local/zookeeper
$ sudo mkdir -p /var/lib/zookeeper

3. 配置 zookeeper

有关 cat > file << EOF 命令形式的分析,我专门写了另外一篇博客,感兴趣的朋友可以点击这里 Linux小技巧:cat > file 和 EOF 的妙用。简单来说,这里就是手动创建了一个配置文件,并且在标准输入中输入配置信息,最后以 EOF 标识文件内容末尾

$ cat > /usr/loca/zookeeper/conf/zoo.cfg << EOF
> tickTime=2000
> dataDir=/var/lib/zookeeper
> clientPort=2181
> EOF

4. 验证

启动 zookeeper 服务,并使用 srvr 命令验证,这里 telnet 的 2181 端口就是上一步中配置的 clientPort 端口号

$ sudo /usr/local/zookeeper/bin/zkServer.sh start
$ telnet localhost 2181
$ srvr

四、安装 Kafka

安装 Kafka 的过程依然是比较简单的。

1. 获取 Kafka

点击 Apache Kafka Download 下载,或者或者直接使用我上传到百度云的安装包 kafka_2.12-2.1.1.tgz

2. 解压安装包

安装目录 /usr/loal/kafka,消息日志目录 /tmp/kafka-logs

$ sudo tar -zxf kafka_2.12-2.1.1.tgz
$ sudo mv kafka_2.12-2.1.1 /usr/local/kafka
$ sudo mkdir /tmp/kafka-logs

3. 验证

启动服务

$ sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon 
/usr/local/kafka/config/server.properties

创建 test 主题

$ sudo /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 
localhost:2181 --replication-factor 1 --partitions 1 --topic  test

往主题上发布消息

$ sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list 
localhost:9092 --topic test

这里需要注意的是,虽然《Kafka 权威指南》上从主题上读取消息使用的是如下的指令代码

$ sudo /usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper 
localhost:2181--topic test --from-beginning

但是在新的 Kafka 版本(0.90版本之后)上,这样用会报错:

zookeeper is not a recognized option

通过参考网上的博客,我发现这样使用就可以成功读取消息,这是因为使用 --zookeeper 启动消费者程序的方式在新版本的 kafka 中已经被废弃,新版本使用 --bootstrap-server 的方式启动消费者程序

$ sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 
localhost:9092 --topic test --from-beginning

至此,Kafka 环境的搭建工作就完成了。

五、总结

Kafka 的安装过程遇到的问题不多,也就是 Kafka 0.90 版本之后消费者从测试主题读取消息的指令有所变化,其他按照步骤做下去一般都不会出现问题。

希望本篇博客能够给大家一些帮助 ^_^

To be Stronger:)

猜你喜欢

转载自blog.csdn.net/u012814856/article/details/88049936
今日推荐