【TDH】Kafka的使用

1. Kafka使用前的配置

       集群在不开启安全的情况下,可以直接进行创建topic的操作。如果集群开启了安全,需要进行相关的安全认证的参数配置。首先去到Kafka的config目录下。

1.1 修改producer.properties文件。

  • 修改bootstrap.servers配置项如下:

  • 在producer.properties文件的末尾添加如下配置:

1.2 修改server.properties文件。

  • 修改zookeeper.connect配置项如下:

  • 修改zookeeper.connection.timeout.ms配置项如下:

1.3 修改consumer.properties文件。

  • 修改zookeeper.connect配置项如下:

  • 修改zookeeper.connection.timeout.ms配置项如下:

  • 在consumer.properties文件末尾添加如下配置:

1.4 jaas.conf文件的介绍。

        jaas.conf文件使用在两处:一,使用Kafka命令前需要声明KAFKA_OPTS变量;二,Flume对接Kafka时,jaas.conf文件内容为KafkaServer、KafkaClient、ZookeeperClient的认证信息。

        jaas.conf文件是默认创建的,文件路径为:/etc/kafka1/conf/。开启安全后,执行kafka的命令前必须保证变量KAFKA_OPTS的值为"-Djava.security.auth.login.config=/etc/kafka1/conf/jaas.conf",为了避免麻烦直接在系统变量里面声明KAFKA_OPTS变量。

2. Kafka建立topic

2.1 用户赋权

     使用如下命令查看当前用户是什么用户:

klist

     结果如下:

      首先去到Kafka的bin目录下,然后给当前用户赋操作集群的权限:

./kafka-acls.sh --authorizer-properties zookeeper.connect=node3:2181,node2:2181,node1:2181 --add --allow-principal User:hive --cluster

2.2 创建topic并赋权

       使用如下命令创建一个3分区3副本的topic:

./kafka-broker-topics.sh --bootstrap-server node3:9092,node2:9092,node1:9092 --create --topic yxy --partitions 3 --replication-factor 3 --consumer.config ../config/consumer.properties

      出现“Successfully created topic…”表示创建topic成功:

      使用如下命令列出集群中存在topic:

./kafka-topics.sh --zookeeper node3:2181,node2:2181,node1:2181 --list

      如下图所示:

      使用如下命令给topic yxy赋予生产数据的权限:

./kafka-acls.sh --authorizer-properties zookeeper.connect=node3:2181,node2:2181,node1:2181 --add --allow-principal User:hive --topic yxy --producer

     使用如下命令给topic yxy赋予消费数据的权限:

./kafka-acls.sh --authorizer-properties zookeeper.connect=node3:2181,node2:2181,node1:2181 --add --allow-principal User:hive --topic yxy --consumer --group hadoop

    使用如下命令查看topic yxy具有哪些权限:

./kafka-acls.sh --authorizer-properties zookeeper.connect=node3:2181,node2:2181,node1:2181 --list --topic yxy

    如下图所示:

2.3 测试Kafka

     创建Kafka topic之后,开启两个窗口进行Kafka的测试,在Kafka的bin目录下,执行如下命令开启生产者:

./kafka-console-producer.sh --broker-list node3:9092,node2:9092,node1:9092 \

--topic yxy \

--producer.config ../config/producer.properties

     执行如下命令开启消费者:

./kafka-console-consumer.sh --bootstrap-server node3:9092,node2:9092,node1:9092 \

--topic yxy \

--consumer.config ../config/consumer.properties

      如下图所示:

       在生产者窗口输入内容,正常情况下可以在消费者窗口接收到输入的数据:

       至此,Kafka创建topic成功。

3. Kafka删除topic

       删除topic之前需要先去8180监控界面将delete.topic.enable的参数设置为true,如下图所示:

       然后,点击右上角“更多操作”-->“配置服务”后,重启Kafka组件:

      重启完成后,可以进行Kafka topic的删除操作,这里提供两种方法。

3.1 使用kubectl命令删除topic

      首先使用如下命令查看Zookeeper的pod id:

kubectl get pod |grep zookeeper

      因为集群三个节点均安装了zookeeper server,故此处可任选上图中的pod id号其一执行如下命令:

kubectl exec -it pod_id bash

      例如:执行kubectl exec -it zookeeper-server-zookeeper1-3543915313-0pr6d bash。然后进入Zookeeper的bin目录下执行如下命令:

./zkCli.sh

        将/brokers/topics 、/consumers/、/admin/delete_topics/、/config/topics/四个目录下的相关topic删除(这里以topic xyx为例),具体如下图所示:

       类似的,将其余三个目录下有关topic xyx的内容全部删除。删除之后,依次执行quit命令和exit命令退出。

       在8180监控界面搜索kmq.log.dirs配置项查看相应的配置目录:

        此处三个节点的配置目录均为/hadoop/kmq,三个节点均去到此目录下,将相关的topic的内容删除,如下图所示:

      至此,Kafka已经将topic xyx删除。

3.2 执行Kafka中Zookeeper的脚本进行删除

      在Kafka的bin目录下,执行如下命令,进入到Zookeeper交互界面:

./zookeeper-shell.sh node3:2181,node2:2181,node1:2181

       删除操作跟2.1中的相同,在此不再赘述。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装Kafka可以分为以下几个步骤: 1. 下载Kafka二进制文件 在Kafka官方网站(https://kafka.apache.org/downloads)上下载Kafka的二进制文件。选择与你的操作系统相对应的压缩包。 2. 解压Kafka二进制文件 将下载的Kafka压缩包解压到你指定的目录中,例如: ``` $ tar -xzf kafka_2.12-2.8.0.tgz $ cd kafka_2.12-2.8.0 ``` 3. 配置Kafka 进入Kafka目录后,进入config目录,修改配置文件server.properties。主要需要修改以下几个配置: ``` # Kafka监听的端口号 listeners=PLAINTEXT://localhost:9092 # ZooKeeper连接地址 zookeeper.connect=localhost:2181 # Kafka日志存放路径 log.dirs=/tmp/kafka-logs ``` 4. 启动ZooKeeper Kafka依赖于ZooKeeper,所以需要先启动ZooKeeper。在ZooKeeper的bin目录下执行以下命令: ``` $ ./zkServer.sh start ``` 5. 启动KafkaKafka的bin目录下执行以下命令启动Kafka: ``` $ ./kafka-server-start.sh ../config/server.properties ``` 6. 创建Kafka主题 Kafka中的数据通过主题进行分类,需要先创建主题。在Kafka的bin目录下执行以下命令创建名为test的主题: ``` $ ./kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 ``` 7. 发送数据到KafkaKafka的bin目录下执行以下命令发送数据到test主题: ``` $ ./kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 ``` 8. 从Kafka消费数据 在Kafka的bin目录下执行以下命令从test主题消费数据: ``` $ ./kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092 ``` 这样就完成了Kafka的安装和基本使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值