• Kafka和的安装与配置


    本文主要介绍Kafka的安装与配置:

    集群规划

    datanode1datanode2datanode3
    zk zk zk
    kafka kafka kafka

    kafka jar包下载地址

    http://kafka.apache.org/downloads.html

    kafka集群安装部署

    解压安装包

    [hadoop@datanode1 software]$ tar -zxvf kafka_2.11-0.8.2.2.tgz -C /opt/module/
    
    1. 修改解压后的名称
    [hadoop@datanode1 module]$ mv kafka_2.11-0.8.2.2/ kafka
    

     /opt/module/kafka目录下创建logs文件夹

    [hadoop@datanode1 kafka]$ mkdir logs/
    

     修改配置文件

    [hadoop@datanode1 kafka]$ cd config/
    [hadoop@datanode1 config]$ vim server.properties
    #broker的全局唯一编号,不能重复
    broker.id=0
    #删除topic功能使能
    delete.topic.enable=true
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘IO的现成数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka运行日志存放的路径	
    log.dirs=/opt/module/kafka/logs
    #topic在当前broker上的分区个数
    num.partitions=1
    #用来恢复和清理data下数据的线程数量
    num.recovery.threads.per.data.dir=1
    #segment文件保留的最长时间,超时将被删除 7天
    log.retention.hours=168
    #配置连接Zookeeper集群地址
    zookeeper.connect=datanode1:2181,datanode2:2181,datanode2:2181
    

     5.配置环境变量

    [hadoop@datanode1 config]$ sudo vim /etc/profile
    #KAFKA_HOME
    export KAFKA_HOME=/opt/module/kafka
    export PATH=$PATH:$KAFKA_HOME/bin
    [hadoop@datanode1 config]$ source /etc/profile
    

     6.分发安装包

    [hadoop@datanode1 module]$ xsync kafka
    ##分发完毕后要在其他节点上配置/opt/module/kafka/config/server.properties broker.id  值  笔者在这里也是 坑了半天发现分发之后 忘记了改broker.id 值
    

     7.启动集群

    [hadoop@datanode1]$ bin/kafka-server-start.sh config/server.properties &
    [hadoop@datanode2]$ bin/kafka-server-start.sh config/server.properties &
    [hadoop@datanode3]$ bin/kafka-server-start.sh config/server.properties &
    

    Kafaka Manager

    为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:

    1.管理多个kafka集群
    2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
    3.选择你要运行的副本
    4.基于当前分区状况进行
    5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
    6.删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
    7.Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
    8.为已存在的topic增加分区
    9.为已存在的topic更新配置
    10.在多个topic上批量重分区
    11.在多个topic上批量重分区(可选partition broker位置)

    这里提供编译好了的包,下载后可以直接使用,可以不用去sbt编译。
    链接:http://pan.baidu.com/s/1bQ3lkM 密码:c251

    将下载完之后的上传到Linux上解压

    [hadoop@datanode1 software]$ unzip kafka-manager-1.3.0.7.zip
    [hadoop@datanode1 software]$ mv kafka-manager-1.3.0.7 kafka-manager
    

     修改application.conf中zk配置

    http.port=9001 (默认9000)  #会与hadoop端口发生冲突
    kafka-manager.zkhosts="192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181" #写ip地址不写主机名
    

     用kafkamanage是在jdk8基础上的,所以先安装jdk8,只需下载解压即可。

    #想要看到读取,写入速度需要开启JMX,修改kafka-server-start.sh 添加一行即可:添加JMX端口8999
    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then 
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 
    export JMX_PORT="8999" 
    fi
    ##如果初始化内存不够 KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 可以设置小一些 JVM系列涉及到到过,之所以设置相同为了防止内存抖动
    

     想要看到读取,写入速度需要开启JMX,修改kafka-server-start.sh 添加一行即可:添加JMX端口8999

    if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"  ## 和你自己的设置内存带下保持相同
    export JMX_PORT="8999" 
    fi
    ##"每个kafka broker都需要修改,修改后进行重启kafka"
    

     启动kafka manager

    [hadoop@datanode1 module]$ cd kafka
    [hadoop@datanode1 module]$ bin/kafka-manager -java-home /opt/module/jdk1.8.0_162/
    在后台运行 
    [hadoop@datanode1 bin]$ nohup ./kafka-manager  -java-home /opt/module/jdk1.8.0_162/  -Dconfig.file=../conf/application.conf >/dev/null 2>&1 &
    

    在localhost:9001查看web页面

    创建cluster: 点击顶部Cluster、Add Cluster

    配置cluster

    ​ 名字;集群zkhost格式:host1:2181,host2:2181,host3:2181
    ​ kafka版本,勾选上JMX和下面的勾选框,可显示更多指标

    创建完毕后,可查看

    topics相关:

  • 相关阅读:
    WPF Window对象的生命周期
    MVC 控制器中传递dynamic(对象) 给视图
    MVC 获取路由的 URL 参数值和默认值的集合。
    mvc路由配置.html结尾的伪静态
    javascript 模拟按键点击提交
    微信小程序调用接口返回数据或提交数据
    清理电脑文件夹中的Thumbs.db文件
    asp.net动态增加服务器端控件并提交表单
    c# asp.net 实现分页(pager)功能
    注册时发短信如何防止别人恶意调用短信接口
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/10418066.html
Copyright © 2020-2023  润新知