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

    本篇博客主要讲解在虚拟机安装之后,从如下五个方面进行讲解kafka的安装过程。

    (1)如何配置虚拟机网络

    (2)如何安装JDK

    (3)如何安装zookeeper

    (4)如何安装kafka

    (5)kafka功能测试

    如何配置虚拟机网


    kafka一般安装到linux操作系统,当然windows下面也可以运行,作为程序员,还是在linux下面开发测试为主,因此我们首先安装3台linux虚拟机

    • 虚拟机软件:vmware workstation 14 pro
    • 操作系统: CentOS-7-x86_64-DVD-1804

    我们首先使用虚拟机软件vmware workstation 14 pro安装CentOS系统,相关教程网上很多,在此不必演示,安装之后再克隆两台,之后进行相关配置。

    三台服务器IP规划为:

    • 192.168.40.101
    • 192.168.40.102
    • 192.168.40.103

    规划依据:和windows下面的VMnet8的IP: 192.168.40.1在同一个网段,下面是宿主机windows下面使用ipconfig查看的内容:

    以太网适配器 VMware Network Adapter VMnet8:

    连接特定的 DNS 后缀 . . . . . . . :
    本地链接 IPv6 地址. . . . . . . . : fe80::3d3c:50d2:c7d:e637%43
    IPv4 地址 . . . . . . . . . . . . : 192.168.40.1
    子网掩码 . . . . . . . . . . . . : 255.255.255.0
    默认网关. . . . . . . . . . . . . :

    (1)网络配置,需要如下三步:

    1 切换root
    2 修改文件   vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    3 重启网络   service network restart

    其中第二步最为复杂:在ifcfg-ens33文件原有基础上:

    修改内容为:

    BOOTPROTO=static
    ONBOOT=yes

    增加内容为(注意IPADDR对于其它两台服务器为:192.168.40.102、192.168.40.103):

    IPADDR=192.168.40.101
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1

    (2)主机名配置

    a:编辑/etc/sysconfig/network文件,添加如下配置。注意其它两台服务器名称。可以配置为 kafka-102、kafka-103

    NETWORKING=yes
    HOSTNAME=kafka-101

    b:完成主机名映射为IP地址的功能。编辑/etc/hosts文件,增加如下配置,其他两台服务器也做类似配置。
    192.168.1.101   kafka-101
    c:重启服务器生效。

    如何安装JDK


    1、查看原有系统的jdk

    [root@kafka-101 ~]# java -version
    openjdk version "1.8.0_161"
    OpenJDK Runtime Environment (build 1.8.0_161-b14)
    OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

    2、删除自带的openjdk(需切换至root用户)

    rpm -qa| grep openjdk|xargs rpm -e --nodeps

    3、新建jdk安装目录

    mkdir /usr/local/java
    cd /usr/local/java

    4、下载jdk并上传至服务器/usr/local/java目录,并解压

    tar -zxvf jdk-8u201-linux-x64.tar.gz

    5、配置/etc/profile文件,添加如下内容

    export JAVA_HOME=/usr/local/java/jdk1.8.0_201
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

    6、使之生效

    source /etc/profile

    7、再次查看jdk信息,已经显示安装成功

    [root@kafka-101 java]# java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

    8、注意问题:如果切换到普通用户,查看JDK版本不能正常执行命令,则新打开一个连接或者重启服务器再查看即可 。

    如何安装zookeeper


        kafka依赖zookeeper管理元信息,因此再安装kafka之前必须安装zookeeper。Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3、5、7个节点)较为合适。

    1、端口规划

    • 服务器1:192.168.40.101 端口:2181、2881、3881
    • 服务器2:192.168.40.102 端口:2182、2882、3882
    • 服务器3:192.168.40.103 端口:2183、2883、3883

    2、修改操作系统的hosts文件,添加与主机IP的映射,注意每个服务器都要添加下面完整的映射。

    • 192.168.40.101 kafka-101
    • 192.168.40.102 kafka-102
    • 192.168.40.103 kafka-103

    3、将zookeeper的压缩包上传至各个服务器(/home/yefengyu/),解压各个服务器上的压缩包。

    tar -zxvf zookeeper-3.4.13.tar.gz

    4、进入zookeeper目录,创建两个文件夹

    cd zookeeper-3.4.13/
    mkdir data
    mkdir logs

    5、将conf下面的zoo_sample.cfg备份一份

    cd conf
    cp zoo_sample.cfg zoo.cfg

    6、修改各个服务器上的zoo.cfg文件,内容如下

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/home/yefengyu/zookeeper-3.4.13/data
    dataLogDir=/home/yefengyu/zookeeper-3.4.13/logs
    clientPort=2181
    server.1=kafka-101:2888:3888
    server.2=kafka-102:2888:3888
    server.3=kafka-103:2888:3888

    7、在每个服务器的/home/yefengyu/zookeeper-3.4.13/data目录下面创建myid文件,里面只需要添加服务器序号

    • kafka-101 服务器中myid内容为:1
    • kafka-102 服务器中myid内容为:2
    • kafka-103 服务器中myid内容为:3

    8、将zookeeper加入到系统环境变量

    (1)vim /home/yefengyu/.bash_profile

    (2)添加如下信息

    #zookeeper env
    export ZOOKEEPER_HOME=/home/yefengyu/zookeeper-3.4.13
    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    (3)为了使得命令生效,需要执行:source /home/yefengyu/.bash_profile

    9、启动zookeeper

    zkServer.sh start
    因为已经配置环境变量,所以可以在任何目录下面启动zookeeper。
    [root@kafka-103 data]# zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /home/yefengyu/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    10、查看zookeeper是否启动

    zkServer.sh status
    可以看到结果如下:
    [root@kafka-103 data]# zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/yefengyu/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.
    启动失败,可能是防火墙需要关闭,关闭防火墙之后再重新启动即可。
    判断防火墙开启:systemctl is-enabled firewalld
    查看防火墙状态:systemctl status firewalld
    临时关闭防火墙:systemctl stop firewalld
    永久关闭防火墙:systemctl disable firewalld
    打开防火墙:systemctl enable firewalld
    重启防火墙:systemctl restart firewalld

    11、关闭zookeeper

    zkServer.sh stop

    12、日志设置

    当前终端处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录,可以修改日志输出到固定目录,方便问题定位。

    修改 /home/yefengyu/zookeeper-3.4.13/bin/zkEnv.sh

    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
    ZOO_LOG_DIR="."
    fi

    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
    ZOO_LOG_DIR="/home/yefengyu/zklogs/"
    fi

    如何安装kafka


    1、在官网下载kafka安装包,上传至服务器 /home/yefengyu 目录下面
    2、解压 tar -zxvf kafka_2.12-2.1.1.tgz
    3、修改修改server.properties

    (1)kafka连接zookeeper的地址,每个kafka的server.properties里面的这个配置都要一样

    zookeeper.connect=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181

    (2)kafka存放日志的目录

    log.dirs=/home/yefengyu/kafka_2.12-2.1.1/kafka-logs

    (3)kafka当前集群的唯一标识,每个机器的kafka服务都不一样

    broker.id=1

    (4)修改advertised.listeners,每个服务器上面的都不一样

    advertised.listeners=PLAINTEXT://192.168.40.101:9092

    4、启动kafka

    cd /home/yefengyu/kafka_2.12-2.1.1/
    ./bin/kafka-server-start.sh config/server.properties &

    5、查看是否启动成功 jps

    [root@kafka-103 kafka_2.12-2.1.1]# jps
    4567 Kafka
    74476 QuorumPeerMain
    9677 Jps

    kafka功能测试


    1、创建主题

    ./bin/kafka-topics.sh --create --zookeeper=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181 --replication-factor 3 --partitions 3 --topic ALARM

    2、查看主题

    ./bin/kafka-topics.sh --list  --zookeeper=192.168.40.101:2181,192.168.40.102:2181,192.168.40.103:2181

    3、发送消息

    ./bin/kafka-console-producer.sh --broker-list 192.168.40.101:9092,192.168.40.102:9092,192.168.40.103:9092 --topic ALARM

    4、接收消息

    ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.40.101:9092,192.168.40.102:9092,192.168.40.103:9092 --topic ALARM

    5、关闭服务

    ./bin/kafka-server-stop.sh
  • 相关阅读:
    HttpMessageNotWritableException: Could not write JSON: No serializer found for class ****
    处理【Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operatio】
    java 日历类Calendar用法
    linux配置nginx
    linux 重命名文件和文件夹
    CentOS 6.7 配置 yum 安装 Nginx
    maven打包时跳过单元测试
    Eclipse 保存文件时自动格式化代码
    mybatis大于号,小于号,去地址符,单引号,双引号转义说明
    玩转Eclipse — 自动代码生成的Java Code Template
  • 原文地址:https://www.cnblogs.com/ye-feng-yu/p/10947300.html
Copyright © 2011-2022 走看看