0


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

单机安装kafka完整版

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

1、下载kafka安装包

官方下载地址

在这里插入图片描述

点击kafka_2.12-3.8.0.tgz自动下载

Kafka 的 Scala 版本指的是 Apache Kafka 的代码库使用 Scala 编程语言编写的部分。Kafka 是用 Java 和 Scala 混合开发的,主要的服务和功能是用 Java 实现的,但一些组件和库,特别是在流处理方面,使用了 Scala。

2、服务器部署

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

tar -zxvf kafka_2.12-3.8.0.tgz

如有需要可配置软链:

ln -s kafka_2.12-3.8.0.tgz kafka

配置

KAFKA_HOME

环境变量,以及将

$KAFKA_HOME/bin

文件夹加入

PATH

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

vim /etc/profile

尾部添加如下:

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

生效环境变量:

source /etc/profile

进入

config

目录下编辑

kafka

核心配置文件

server.properties

以及

zk

的核心配置文件

zookeeper.properties

:

vim server.properties

在这里插入图片描述

#没有单独部署zk集群的话就直接配本地zk,后面直接启动kafka自带的zk其中127.0.0.1为本机ip
zookeeper.connect=127.0.0.1:2181
#kafka数据存储目录workDir改成你的安装目录
log.dirs=/workDir/kafka/app/kafka_2.12-3.8.0/data
#配置kafka的监听端口(SASL_PLAINTEXT:动态增加用户协议,PLAINTEXT 不能动态增加用户)
listeners=SASL_PLAINTEXT://127.0.0.1:9092

#---------以下配置是在需要用户密码认证时配置,不需要直接删除----------
#使用的认证协议(SASL_PLAINTEXT:动态增加用户协议,PLAINTEXT 不能动态增加用户)
security.inter.broker.protocol=SASL_PLAINTEXT
#SASL机制,简单账号密码认证配置
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
#完成身份验证的类
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
#设置管理员账号
super.users=User:admin
vim zookeeper.properties

在这里插入图片描述

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

config

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

kafka-server-jaas.conf

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

—用于kafka的认证:

KafkaServer={
        org.apache.kafka.common.security.plain.PlainLoginModule=required
        username="admin"
        password="admin-pwd"
        user_admin="admin-pwd"
        user_broker0="broker0-pwd";
};=
kafka-zk-jaas.conf

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

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

进入

bin

目录下修改

zk

kafka

的启动脚本:

vim zookeeper-server-start.sh

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

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

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

#注意配置文件的路径改成你刚才创建的那个文件的目录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

#启动zk
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
#启动kafka
./bin/kafka-server-start.sh -daemon config/server.properties

#如果不成功可以去掉-daemon改为前台启动观察日志
./bin/kafka-server-start.sh config/server.properties

kafka提供了各种脚本

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

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

./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]的读权限

./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)

# consumer group id
group.id=group_id

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

./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

查看权限

./kafka-acls.sh --list --authorizer-properties zookeeper.connect=127.0.0.1:2181

Current ACLs for resource `ResourcePattern(resourceType=GROUP, name=group_name, patternType=LITERAL)`:(principal=User:broker0, host=*, operation=READ, permissionType=ALLOW)
 
Current ACLs for resource `ResourcePattern(resourceType=GROUP, name=group_id, patternType=LITERAL)`:(principal=User:broker0, host=*, operation=READ, permissionType=ALLOW)
 
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
启动生产者和消费者

./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic_name --from-beginning --consumer.config ../config/consumer.properties
./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(含账号密码认证)”的评论:

还没有评论