【kafka】简单粗暴从0开始在linux上安装kafka并简单使用

从零开始安装kafka

1.下载:

http://kafka.apache.org/downloads

个人安装过程中,下载source下的版本在运行时会出现以下错误,改为Binary 即可成功运行

Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

2.安装:

kafka需要有jdk支持,首先在linux输入

java -version

出现以下版本信息为jdk已装好,直接跳到2.2
在这里插入图片描述
否则,需要安装jdk,见2.1

2.1安装jdk

因个人原因,我安装kafka的环境无法上外网,所有安装包都需下载好然后上传到需要安装的环境(服务器),这里推荐一个服务器传文件的工具 WinSCP (随意百度一下可下载)

  • jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • 版本选择:linux下输入 getconf LONG_BIT 返回系统为32位还是64位,选择操作系统和位数对应的安装包,oracle公司一次会发布两个版本,个人理解,奇数版本为稳定版本,偶数版本为测试版本,建议下载奇数版本
  • 解压安装:两个压缩包(kafka和jdk)都放到服务器上后,解压jdk到指定目录(这里是 usr/local/java
    命令:tar zxvf java.tar.gz -C /usr/java
    在这里插入图片描述
  • 配置环境变量:在 /etc/profile 最后添加
    export JAVA_HOME=/usr/local/java/jdk1.8.0_201
    export PATH=$PATH:$JAVA_HOME/bin
    在这里插入图片描述
    命令: vi /etc/profile
    保存修改:先按esc 然后输入 :wq 如果修改错误可以输入 :q! 强制退出
    重新运行 profile: source /etc/profile
  • 验证安装是否成功:java -version 回显同上
2.2安装kafka
  • 解压安装:同上 tar zxvf kafka_2.11-2.1.0.tgz -C ./ 解压到当前目录
  • 修改端口号:此步骤可以省略,只是其他资料里有写默认的2181端口可能会被其他程序占用从而引起冲突,所以改为2185
    命令:在解压后的文件夹下,cd config然后 vi zookeeper.properties 找到clientPort,改为2185
    【kafka】简单粗暴从0开始在linux上安装kafka并简单使用_第1张图片
    要与这个clientPort保持一致,在 server.properties 文件同样找到zookeeper.connect的端口号
    【kafka】简单粗暴从0开始在linux上安装kafka并简单使用_第2张图片
2.3运行kafka
  • 启动zookeeper服务:
    bin/zookeeper-server-start.sh config/zookeeper.properties
    (实测不可关闭)

  • 启动kafka服务:
    bin/kafka-server-start.sh config/server.properties
    (实测不可关闭)

如果没有topic:

  • 需要先创建一个topic:在解压后的文件夹下,输入
    bin/kafka-topics.sh --create --zookeeper localhost:2185 --replication-factor 1 --partitions 1 --topic test (topic名为test)
    检查创建是否成功:
    bin/kafka-topics.sh --list --zookeeper localhost:2185

如果早已有topic(test)可以直接使用:

  • 创建消息消费者(订阅topic):
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
  • 创建消息生产者(向topic发消息)
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

所有上述全部都没有报错/占用,zookeeper和kafka服务没有关闭(terminate)的话,创建生产者之后会进入文本界面,可以直接输入消息,回车发送给订阅过topic的消费者。消息管理基础功能实现

删除topic:bin/kafka-topics.sh --delete --zookeeper 【zookeeper server】 --topic 【topic name】
如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

此时你若想真正删除它,可以如下操作:

(1)登录zookeeper客户端:命令:./bin/zookeeper-client

(2)找到topic所在的目录:ls /brokers/topics

(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

如果你删除了此处的topic,那么marked for deletion 标记消失

参考资料:https://blog.csdn.net/luanpeng825485697/article/details/81036028

你可能感兴趣的:(kafka,kafka,消息管理,Apache)