0


单机安装kafka(含账号密码认证)

单机安装kafka完整版

  1. 需要准备如下:
  2. 安装JDK1.8+,配置JAVA_HOME (CentOS 64bit)
  3. 配置主机名和IP映射【可选】
  4. 关闭防火墙 | 防火墙开机自启动
  5. 安装&启动Zookeeper【使用kafka安装包自带的即可】

1、下载kafka安装包

官方下载地址

在这里插入图片描述

  1. 点击kafka_2.12-3.8.0.tgz自动下载
  2. Kafka Scala 版本指的是 Apache Kafka 的代码库使用 Scala 编程语言编写的部分。Kafka 是用 Java Scala 混合开发的,主要的服务和功能是用 Java 实现的,但一些组件和库,特别是在流处理方面,使用了 Scala

2、服务器部署

上传至服务器提前创建好的部署目录并解压:

  1. tar -zxvf kafka_2.12-3.8.0.tgz

如有需要可配置软链:

  1. ln -s kafka_2.12-3.8.0.tgz kafka

配置

  1. KAFKA_HOME

环境变量,以及将

  1. $KAFKA_HOME/bin

文件夹加入

  1. PATH

环境变量中(环境变量的配置为可选项最好配置学习时可不配):

  1. vim /etc/profile

尾部添加如下:

  1. exportKAFKA_HOME=/export/server/kafka
  2. exportPATH=:$PATH:${KAFKA_HOME}

生效环境变量:

  1. source /etc/profile

进入

  1. config

目录下编辑

  1. kafka

核心配置文件

  1. server.properties

以及

  1. zk

的核心配置文件

  1. zookeeper.properties

:

  1. vim server.properties

在这里插入图片描述

  1. #没有单独部署zk集群的话就直接配本地zk,后面直接启动kafka自带的zk其中127.0.0.1为本机ip
  2. zookeeper.connect=127.0.0.1:2181
  3. #kafka数据存储目录workDir改成你的安装目录
  4. log.dirs=/workDir/kafka/app/kafka_2.12-3.8.0/data
  5. #配置kafka的监听端口(SASL_PLAINTEXT:动态增加用户协议,PLAINTEXT 不能动态增加用户)
  6. listeners=SASL_PLAINTEXT://127.0.0.1:9092
  7. #---------以下配置是在需要用户密码认证时配置,不需要直接删除----------
  8. #使用的认证协议(SASL_PLAINTEXT:动态增加用户协议,PLAINTEXT 不能动态增加用户)
  9. security.inter.broker.protocol=SASL_PLAINTEXT
  10. #SASL机制,简单账号密码认证配置
  11. sasl.enabled.mechanisms=PLAIN
  12. sasl.mechanism.inter.broker.protocol=PLAIN
  13. #完成身份验证的类
  14. authorizer.class.name=kafka.security.authorizer.AclAuthorizer
  15. #设置管理员账号
  16. super.users=User:admin
  1. vim zookeeper.properties

在这里插入图片描述

  1. #zk数据存储目录
  2. dataDir=/workDir/kafka/zookeeper/apache-zookeeper-3.5.7-bin/data

  1. config

目录下创建用于用户密码认证的认证文件

  1. kafka-server-jaas.conf

  1. kafka-zk-jaas.conf
  1. kafka-server-jaas.conf

—用于kafka的认证:

  1. KafkaServer={
  2. org.apache.kafka.common.security.plain.PlainLoginModule=required
  3. username="admin"
  4. password="admin-pwd"
  5. user_admin="admin-pwd"
  6. user_broker0="broker0-pwd";
  7. };=
  1. kafka-zk-jaas.conf

—用于集群broker之间的认证:

  1. zookeeper={
  2. org.apache.kafka.common.security.plain.PlainLoginModule=required
  3. username="admin"
  4. password="admin-pwd";
  5. };=
  1. 其中usernamepassword是配置超管的账号密码, user_broker0="broker0-pwd"可以配置多个,格式为user_账号名=密码

进入

  1. bin

目录下修改

  1. zk

  1. kafka

的启动脚本:

  1. vim zookeeper-server-start.sh

直接在首行添加如下内容:

  1. #注意配置文件的路径改成你刚才创建的那个文件的目录exportKAFKA_OPTS=" -Djava.security.auth.login.config=/iflytek/dmxu2/kafka/app/kafka_2.12-3.8.0/config/kafka-zk-jaas.conf"
  1. vim kafka-server-start.sh

直接在首行添加如下内容:

  1. #注意配置文件的路径改成你刚才创建的那个文件的目录exportKAFKA_OPTS=" -Djava.security.auth.login.config=/iflytek/dmxu2/kafka/app/kafka_2.12-3.8.0/config/kafka-server-jaas.conf"

启动zk和kafka,先启动zk

  1. #启动zk
  2. ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
  3. #启动kafka
  4. ./bin/kafka-server-start.sh -daemon config/server.properties
  5. #如果不成功可以去掉-daemon改为前台启动观察日志
  6. ./bin/kafka-server-start.sh config/server.properties

kafka提供了各种脚本

  1. ./bin/kafka-server-stop.sh=#关闭kafka
  2. kafka-console-consumer.sh=#消费命令
  3. kafka-console-producer.sh=#生产命令
  4. kafka-consumer-groups.sh=#查看消费者组,重置消费位点等
  5. kafka-topics.sh=#查询topic状态,新建,删除,扩容
  6. kafka-acls.sh=#配置,查看kafka集群鉴权信息
  7. kafka-configs.sh=#查看,修改kafka配置
  8. kafka-mirror-maker.sh=#kafka集群间同步命令
  9. kafka-preferred-replica-election.sh=#重新选举topic分区leader
  10. kafka-producer-perf-test.sh=#kafka自带生产性能测试命令
  11. kafka-reassign-partitions.sh=#kafka数据重平衡命令
  12. kafka-run-class.sh=#kafka执行脚本

给broker0账户赋予topic=[topic_name]的写权限

  1. ./kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:broker0 --operation Write --topic topic_name

给broker0账户赋予topic=[topic_name]的读权限

  1. ./kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:broker0 --operation Read --topic topic_name

修改consumer.properties中的group.id (默认为 test-consumer-group)

  1. # consumer group id
  2. group.id=group_id

给broker0账户赋予group=[group_id]读授权 (外部连接kafka需要指定group.id,此时必须对group进行授权,否则无法通过授权)

  1. ./kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=127.0.0.1:2181 --add --allow-principal User:broker0 --operation Read --group group_id

查看权限

  1. ./kafka-acls.sh --list --authorizer-properties zookeeper.connect=127.0.0.1:2181
  2. Current ACLs for resource `ResourcePattern(resourceType=GROUP, name=group_name, patternType=LITERAL)`:(principal=User:broker0, host=*, operation=READ, permissionType=ALLOW)
  3. Current ACLs for resource `ResourcePattern(resourceType=GROUP, name=group_id, patternType=LITERAL)`:(principal=User:broker0, host=*, operation=READ, permissionType=ALLOW)
  4. Current ACLs for resource `ResourcePattern(resourceType=TOPIC, name=topic_name, patternType=LITERAL)`:(principal=User:broker0, host=*, operation=READ, permissionType=ALLOW)(principal=User:broker0, host=*, operation=WRITE, permissionType=ALLOW)

ACL命令操作(–operation)对应功能:
OperationResourceAPIALTERTopicCreatePartitionsALTER_CONFIGSTopicAlterConfigsCREATETopicMetadata if auto.create.topics.enableCREATETopicCreateTopicsDELETETopicDeleteRecordsDELETETopicDeleteTopicsDESCRIBETopicListOffsetsDESCRIBETopicMetadataDESCRIBETopicOffsetFetchDESCRIBETopicOffsetForLeaderEpochDESCRIBE_CONFIGSTopicDescribeConfigsREADTopicFetchREADTopicOffsetCommitREADTopicTxnOffsetCommitWRITETopicProduceWRITETopicAddPartitionsToTxnDELETEGroupDeleteGroupsDESCRIBEGroupDescribeGroupDESCRIBEGroupFindCoordinatorDESCRIBEGroupListGroupsREADGroupAddOffsetsToTxnREADGroupHeartbeatREADGroupJoinGroupREADGroupLeaveGroupREADGroupOffsetCommitREADGroupOffsetFetchREADGroupSyncGroupREADGroupTxnOffsetCommit
启动生产者和消费者

  1. ./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic_name --from-beginning --consumer.config ../config/consumer.properties
  1. ./kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic topic_name --producer.config ../config/producer.properties
标签: kafka

本文转载自: https://blog.csdn.net/qq_43461350/article/details/143302117
版权归原作者 狍子弟弟(兄弟盟资源网管理员) 所有, 如有侵权,请联系我们删除。

“单机安装kafka(含账号密码认证)”的评论:

还没有评论