二、kafka & kafka-manager 安装

一、kafka安装过程(三个节点)

  1. 官网下载安装包:kafka_2.11-2.1.1.tgz。
  2. 分发,解压,创建软连接
  3. 修改配置文件
    • server.properties
     broker.id=2 #各个节点不一致
     listeners=PLAINTEXT://:9092
     advertised.listeners=PLAINTEXT://s1:9092
     log.dirs=/data/kafka-logs
     zookeeper.connect=nn1.hadoop:2181,nn2.hadoop:2181,s1:2181
     delete.topic.enable=true #设置日志数据是否自动删除
     auto.create.topics.enable=true #开启自动创建topic
    
    • producer.properties
     bootstrap.servers=nn1.hadoop:9092,nn2.hadoop:9092,s1:9092
    
    • consumer.properties
     bootstrap.servers=nn1.hadoop:9092,nn2.hadoop:9092,s1:9092
    
  4. 启动关闭
    • 启动:./ssh_all_zookeeper.sh "nohup /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties > /tmp/kafka_logs 2>&1 &"
    • 关闭:./ssh_all_zookeeper.sh /usr/local/kafka/bin/kafka-server-stop.sh
  5. kafka常用命令
  • 创建topic:
    • /usr/local/kafka/bin/kafka-topics.sh --create --replication-factor 2 --partitions 2 --topic xxd_test --zookeeper nn1.hadoop:2181,nn2.hadoop:2181,s1:2181
    • 这里指定了2个副本,2个分区,topic名为xxd_test,并且指定zookeeper地址。
  • 查看已有的topic:
    • /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper nn1.hadoop:2181,nn2.hadoop:2181,s1:2181
  • 查看topic的信息:
    • /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper nn1.hadoop:2181,nn2.hadoop:2181,s1:2181 --topic xxd_test
  • 启动一个生产者:
    • /usr/local/kafka/bin/kafka-console-producer.sh --broker-list nn1.hadoop:9092,nn2.hadoop:9092,s1:9092 --topic xxd_test
  • 启动一个消费者:
    • /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server nn1.hadoop:9092,nn2.hadoop:9092,s1:9092 --topic xxd_test
  • 查看 consumer group 列表
    • /usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server nn1.hadoop:9092,nn2.hadoop:9092,s1:9092 --list
  • 查看特定消费组的信息:
    • /usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server nn1.hadoop:9092,nn2.hadoop:9092,s1:9092 --group canal_consumer --describe
    • 消费信息

二、遇到的问题

  1. requirement failed: Configured end points nn1.hadoop:9092 in advertised listeners are already registered by broker 0
    • server.properties文件中 advertised.listeners=PLAINTEXT://s1:9092 IP设置不对

三、kafka-manager 安装(一个节点)

  1. 下载压缩包,上传,解压,创建软连接。

  2. 修改配置文件 application.conf

    kafka-manager.zkhosts="nn1.hadoop:2181,nn2.hadoop:2181,s1:2181"
    # 用于指明kafka连接的zookeeper。如果zookeeper有多个用逗号分隔。如果你不想直接写入配置文件,你可以设置环境变量ZK_HOSTS,在配置文件中是用{$ZK_HOSTS}引用即可。要想kafka-manager可以运行起来修改此配置即可。
    ## 如果kafka安装在zk的/kafka目录那么配置下面的
    kafka-manager.base-zk-path="/kafka"
    
    application.features=["features1","features2",...]
    # 设置kafka-manager对kafka集群具有的功能。有下面这四个功能
    # KMClusterManagerFeature:容许kafka manager添加,更新,删除kafka集群
    # KMTopicManagerFeature:容许kafka manager在kafka集群中添加,更新,删除topic
    # KMPreferredReplicaElectionFeature:容许kafka manager在kafka集群中执行优先复制选举
    # KMReassignPartitionsFeature:容许kafka manager 生成分区设置,或重置分区设置。
    
    basicAuthentication.enabled
    # 是否启动basic认证,启用使用true,不启用使用false。当启用是此选项是,用户请求访问资源时,浏览器就会弹出一个认证框让用户认证。
    
    basicAuthentication.username
    # 启用basic认证时,认证的用户名
    
    basicAuthentication.password
    # 启用basic认证时,认证的密码
    
    basicAuthentication.realm
    # 可以看成是一个解释,认证用于什么。此字符串在弹出认证框上显示出来
    
    basicAuthentication.excluded=["/api/health"]
    # 对kafka manager进行健康状态检测,不需要认证
    

    注意:

    • kafka 在 zk 中有 path 时,在 kafka-manager 界面配置 cluster 的时候
    • Cluster Zookeeper Hosts 这一行 配置 192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181/kafka
    • 是最后一个 host 加 path
  3. 命令

    • 开启:
      • nohup /usr/local/kafka-manager/bin/kafka-manager -Dconfig.file=/usr/local/kafka-manager/conf/application.conf -Dhttp.port=9999 > /usr/local/kafka-manager/logs/kafka-manager.log 2>&1 &
posted @ 2020-05-12 13:36  abc十号  阅读(909)  评论(0编辑  收藏  举报