kafka集群搭建与使用

kafka集群搭建与使用

1. kafka下载和依赖

  • 官网下载地址:[KAFKA]: http://kafka.apache.org/downloads.html

  • 下载kafka_2.11-0.8.2.2.tgz 依赖编译环境JDK7+

2.解压和配置

  • tar -zxvf kafka_2.11-0.8.2.2.tgz

  • cd kafka_2.11-0.8.2.2

  • kafka目录结构和说明

    • bin 操作kafka的可执行脚本,也包含windows下bat脚本

    • config 配置文件所在目录

    • libs 依赖库目录

    • logs 服务日志数据目录

  • 配置zookeeper(假设已经搭建了zookeeper服务)

    • cd kafka_2.11-0.8.2.2

    • vim config/server.properties

      • 修改属性zookeeper.connect=ip1:2181,ip2:2181
      • 说明:默认元数据信息存储在zk的consumer目录下,如果需要指定可zookeeper.connect=ip1:2181,ip2:2181/kafka
  • kafka 主要的四个配置:broker.id、log.dir、zookeeper.connect、port

    • broker.id 节点唯一ID标识,设置为自然数(从0开始递增即可)

    • log.dir log数据路径指定 默认路径:/tmp/kafka-logs

      • 可指定磁盘 如:/opt/kafka/kafka-logs
    • zookeeper.connect 所依赖的zk服务连接地址

    • port kafka server端口,默认9092

    • log.retention.hours=168 说明kafka上元数据的保存时间 可以看做是TTL

    • 其他参数可根据业务需求自行调试优化,可参考[Kafka Doc]:http://kafka.apache.org/documentation.html 说明

  • 节点分发,组建kafka集群服务

    • scp kafka_2.11-0.8.2.2 目录到其他节点

3.kafka server服务启动与停止

  • 启动服务: bin/kafka-server-start.sh config/server.properties &

    bin/kafka-server-start.sh -daemon config/server.properties

  • 停止服务: bin/kafka-server-stop.sh
    ps aux | grep kafka | awk '{print $2}' | xargs kill -9

4.kafka服务使用说明

  • 创建topic

    • bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 5 --topic test

      • 说明: 创建了一个topic名字为:test replication为:2 partitions为:5
  • 验证topic是否创建成功

    • bin/kafka-topics.sh --list --zookeeper localhost:2181

      • 说明:列出集群中已经创建的所以topic
  • 查看topic属性情况:

    • bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

      • 说明: 可查看topic 的分区和副本信息
  • 命令行生产数据测试:

    • bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
  • 命令行消费数据测试:

    • bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic test
  • 修改topic参数:

    • bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic test --partitions 8
      说明:增加 topic test的分区数量,kafka目前只接受分区数量增加,不支持减少,请合理慎重设置。
  • 删除topic

    • ./kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
    • 说明:topic 删除功能启动 需要server.properties 中设置:
      delete.topic.enable=true 重启kafka才会生效。
    • 此时并没有完全删除只是把相应topic的状态改为marked for deletion
    • 永久删除某个topic及数据:
      删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
      删除zookeeper "/brokers/topics/"目录下相关topic节点
      cd zookeeper安装目录
      bin/zkCli.sh
      ls /brokers/topics/test
      rmr /brokers/topics/test
      rmr /admin/delete_topics/test

-------------- 更多高级玩法和扩展请看后续分解 -----------------

你可能感兴趣的:(Kafka,kafka)