Kafka部署及使用

kafka四个核心概念:producer、consumer、broker、topic

  • 启动zk

    下载zk zookeeper-3.4.5-cdh5.7.0.tar.gz
    解压:tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C /home/hadoop/app
    修改zk conf/zoo.cfg文件:
    dataDir=/home/hadoop/app/tmp/zk
    clientPort=2181
    启动zk ./zkServer.sh start

  • kafka单节点单broker部署及使用
  1. 下载
    下载 kafka_2.11-0.9.0.0.tgz
    解压 tar -zxvf kafka_2.11-0.9.0.0.tgz -C /home/hadoop/app
  2. 配置修改
    vim server.properties修改如下配置
    log.dirs=/home/hadoop/app/tmp/kafka-logs
    zookeeper.connect=hadoop000:2181
    host.name=hadoop000
  3. 启动kafka
    kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties &
    启动成功后jps会看到一个Kafka进程
  4. 创建topic
    创建topic:
    kafka-topics.sh --create --zookeeper hadoop000:2181 --replication-factor 1 --partitions 1 --topic hello_topic
    查看所有topic:
    kafka-topics.sh --list --zookeeper hadoop000:2181
  5. 发送和消费消息
    创建生产者:
    kafka-console-producer.sh --broker-list hadoop000:9092 --topic hello_topic
    创建消费者:
    kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic hello_topic
  • 单节点多broker部署及使用
  1. 配置修改
    server-1.properties:
    log.dirs=/home/hadoop/app/tmp/kafka-logs-1
    listeners=PLAINTEXT://:9093
    broker.id=1
    zookeeper.connect=hadoop000:2181
    host.name=hadoop000

    server-2.properties:
    log.dirs=/home/hadoop/app/tmp/kafka-logs-2
    listeners=PLAINTEXT://:9094
    broker.id=2
    zookeeper.connect=hadoop000:2181
    host.name=hadoop000

    server-3.properties:
    log.dirs=/home/hadoop/app/tmp/kafka-logs-3
    listeners=PLAINTEXT://:9095
    broker.id=3
    zookeeper.connect=hadoop000:2181
    host.name=hadoop000

  2. 启动
    kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties &
    kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties &
    kafka-server-start.sh -daemon $KAFKA_HOME/config/server-3.properties &
    启动成功后jps会看到3个Kafka进程

  • kafka常用命令
    • 创建topic(--zookeeper 指定zk,--replication-factor 指定副本数量,--partitions指定分片数,--topic指定topic名称):
      kafka-topics.sh --create --zookeeper hadoop000:2181 --replication-factor 1 --partitions 1 --topic streamingtopic
    • 查询有哪些topic(--zookeeper指定zk)
      kafka-topics.sh --list --zookeeper hadoop000:2181
    • 查询topic详细信息(--zookeeper指定zk,--topic指定topic名称)
      kafka-topics.sh --describe --zookeeper hadoop000:2181 --topic streamingtopic
    • 创建生产者(--broker-list指定broker,多个broker逗号分隔)
      kafka-console-producer.sh --broker-list hadoop000:9093,hadoop000:9094,hadoop000:9095 --topic streamingtopic
    • 创建消费者(--zookeeper指定zk,--from-beginning指定从第一条开始消费,可选)
      kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic streamingtopic --from-beginning
    • 删除topic
      kafka-topics.sh --delete --zookeeper hadoop000:2181 --topic streamingtopic
      ----这样的操作并没有彻底删除掉topic,仍然存在,仅仅是标志为delete,用户不能创建相同名称的topic。
    • 彻底删除topic:
      /kafka-topics.sh --delete --zookeeper hadoop000:2181 --topic webchatf_topic
      ----先把topic标记为已删除
      进入到zookeeper目录下
      ./bin/zkCli.sh ----进入到zk客户端
      rmr /brokers/topics/hadoop000----即可彻底删除topic

你可能感兴趣的:(Kafka部署及使用)