zoukankan      html  css  js  c++  java
  • kafka安装

    1. 准备工作

    1.1 安装包

    #zookeeper必须是bin包

    wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz

    wget http://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz

    1.2 准备至少3台主机(centos系统)

    主机名
    IP地址
    硬件配置
    kafka-1 192.168.3.40 4CPU、8G内存、100G存储
    kafka-2 192.168.3.41 4CPU、8G内存、100G存储
    kafka-3 192.168.3.42 4CPU、8G内存、100G存储

    2. 安装JAVA环境

    scp root@192.168.3.23:/home/work/software/jdk-8u251-linux-x64.tar.gz /home/work/software/
    tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
    mv jdk1.8.0_251/ /opt/java1.8
    vi /etc/profile
    export JAVA_HOME=/opt/java1.8
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    保存
    source /etc/profile

    3. 搭建zookeeper集群

    tar -zxvf apache-zookeeper-3.6.1.tar.gz
    mv apache-zookeeper-3.6.1-bin /home/work/zookeeper

    vim /etc/profile

    export ZK_HOME=/home/work/zookeeper
    export PATH=$ZK_HOME/bin:$PATH

    保存
    source /etc/profile

    打开zookeeper配置文件

    cp /home/work/zookeeper/conf/zoo_sample.cfg /home/work/zookeeper/conf/zoo.cfg
    mkdir -p /data/zookeeper

    修改zookeeper配置文件

    vim /home/work/zookeeper/conf/zoo.cfg

    #修改数据文件夹路径
    dataDir=/data/zookeeper
    #在文件末尾添加

    server.1=192.168.3.40:2888:3888
    server.2=192.168.3.41:2888:3888
    server.3=192.168.3.42:2888:3888

    #其它不变

    #修改日志目录

    mkdir -p /data/zookeeper/log
    vi /home/work/zookeeper/conf/log4j.properties
    zookeeper.log.dir=/data/zookeeper/log

    创建myid文件,在myid文件中添加本机的 server ID,在本例中对应关系如下

    主机名
    IP地址
    zookeeper
    myid
    kafka-1 192.168.3.40 server.1 1
    kafka-2 192.168.3.41 server.2 2
    kafka-3 192.168.3.42 server.3 3

    所以,在kafka-1中执行下面命令

    echo "1" > /data/zookeeper/myid  #kafka-1主机myid
    

    在kafka-2中执行下面命令

    echo "2" > /data/zookeeper/myid #kafka-2主机myid
    

    在kafka-3中执行下面命令

    echo "3" > /data/zookeeper/myid  #kafka-3主机myid
    

    在每台电脑上启动zookeeper

     
    cat << EOF > /etc/systemd/system/zookeeper.service
    [Unit]
    Description=zookeeper.service
    After=network.target
    [Service]
    Type=forking
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/java1.8/bin"
    ExecStart=/home/work/zookeeper/bin/zkServer.sh start
    ExecStop=/home/work/zookeeper/bin/zkServer.sh stop
    ExecReload=/home/work/zookeeper/bin/zkServer.sh restart
    [Install]
    WantedBy=multi-user.target
    EOF
    #设置java环境
    vi /home/work/zookeeper/bin/zkEnv.sh
    JAVA_HOME=/opt/java1.8
     
    systemctl daemon-reload
    systemctl start zookeeper
    systemctl enable zookeeper

    #查看zk状态
    bin/zkServer.sh status

    4. 搭建kafka集群

    解压文件

    tar -zxvf kafka_2.12-2.5.0.tgz 
    

    重命名文件夹为zookeeper

    mv kafka_2.12-2.5.0 /home/work/kafka
    

    配置kafka环境变量,首先打开profile文件

    vim /etc/profile
    

    按i进入编辑模式,在文件末尾添加kafka环境变量

    #set kafka environment

    export KAFKA_HOME=/home/work/kafka
    export PATH=${KAFKA_HOME}/bin:$PATH

    保存文件后,让该环境变量生效

    source /etc/profile
    
    mkdir -p /data/kafka/logs

    在kafka-1主机中修改server.properties配置文件

    打开配置文件

    vim /home/work/kafka/config/server.properties
    

    修改配置如下(IP地址应该根据实际情况填写)

    broker.id=1
    log.dirs=/data/kafka/logs
    listeners=PLAINTEXT://192.168.3.40:9092
    zookeeper.connect=192.168.3.40:2181,192.168.3.41:2181,192.168.3.42:2181

    
    

    在kafka-2主机中修改server.properties配置文件

    打开配置文件

    vim /home/work/kafka/config/server.properties

    修改配置如下(IP地址应该根据实际情况填写)

    broker.id=2
    log.dirs=/data/kafka/logs
    listeners=PLAINTEXT://192.168.3.41:9092
    zookeeper.connect=192.168.3.40:2181,192.168.3.41:2181,192.168.3.42:2181

    
    

    在kafka-3主机中修改server.properties配置文件

    打开配置文件

    vim /home/work/kafka/config/server.properties

    修改配置如下(IP地址应该根据实际情况填写)

    broker.id=3
    log.dirs=/data/kafka/logs
    listeners=PLAINTEXT://192.168.3.42:9092
    zookeeper.connect=192.168.3.40:2181,192.168.3.41:2181,192.168.3.42:2181

    
    

    启动kafka(要确保zookeeper已启动)

    在每台主机上分别启动kafka

    cat <<EOF >/etc/systemd/system/kafka.service
    [Unit]
    Description=Apache Kafka server (broker)
    After=network.target  zookeeper.service
     
    [Service]
    Type=simple
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/java1.8/bin"
    User=root
    Group=root
    ExecStart=/home/work/kafka/bin/kafka-server-start.sh /home/work/kafka/config/server.properties
    ExecStop=/home/work/kafka/bin/kafka-server-stop.sh
    Restart=on-failure
     
    [Install]
    WantedBy=multi-user.target
    EOF
    systemctl start kafka
    systemctl enable kafka

     每台机器bin/kafka-run-class.sh里面第一行添加JMX_PORT=9988

    在其中一台虚拟机(192.168.3.40)创建topic

    /home/work/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.3.40:2181 --replication-factor 3 --partitions 1 --topic test-topic
    

    查看创建的topic信息

    /home/work/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.3.40:2181 --topic test-topic
  • 相关阅读:
    devstack安装openstack
    Stacks of Flapjacks
    二、Reids基础命令--字符串
    数据库筛选用户,然后去掉一部分(列表求差),再随机返回一个用户。sqlalchemy + python集合(set) + random
    利用Powershell获取公司内部机器的资源信息,作为企业兴许资产管理的基本途径!
    《编程导论(Java)&#183;3.2.4 循环语句》
    Android自己主动检測版本号及自己主动升级
    基于bootstrap的富文本框——wangEditor【欢迎增加开发】
    找球号(三)
    #308 (div.2) B. Vanya and Books
  • 原文地址:https://www.cnblogs.com/breg/p/13186835.html
Copyright © 2011-2022 走看看