zoukankan      html  css  js  c++  java
  • linux环境安装kafka集群

      linux下安装kafka,首先确保zookeeper已经安装成功,想要安装zookeeper,必须先在linux中安装好jdk。

    下面我们依次开始安装jdk,zookeeper,kafka。

    一:安装jdk:

      1.检查linux环境是否安装了jdk可以用java -version或者rpm -qa|grep jdk 。

      2.下载jdk-8u221-linux-x64.tar.gz。可以在官网上下载,也可以从百度云盘中下载,百度云盘中有jdk,zookeeper,kafka安装包

        https://pan.baidu.com/s/1JjAS4VXRVzPkwuxylJnk4w 提取码:79i1 。

      3.下载到本地后用rz命令把安装包传到linux服务器的usr/local/java目录下。

      4.然后用解压缩命令解压缩tar -zxvf jdk-8u221-linux-x64.tar.gz。

      5.配置jdk环境变量:编辑/etc/下的profile文件: vi /etc/profile

       在文件末尾添加如下配置:

       export JAVA_HOME=/usr/local/java/jdk1.8.0_162

       export JRE_HOME=${JAVA_HOME}/jre

       export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

       export PATH=${JAVA_HOME}/bin:$PATH

       标红色路径为jdk解压路径,根据实际情况配置,保存配置文件退出。

      6.使/etc/profile生效  :source /etc/profile

      7.测试jdk安装是否成功: java -version

    二:安装zookeeper:

      1.可以wget下载zookeeper-3.4.13.tar.gz,也可以下载到本机安装包,然后用rz命令传到服务器/usr/local/zookeeper路径下。

      2.解压缩,用解压缩命令,tar -zxvf zookeeper-3.4.13.tar.gz解压。

      3.编辑配置文件前看一下本机ip,及端口号占用。netstat -tunlp ,用于显示tcp,udp的端口和进程等相关情况。netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况。

      hostname命令可以看本服务器ip地址。查看/tmp/zookeeper/data,/tmp/zookeeper/log目录,如果没有用mkdir命令创建。
      10.0.66.50服务器:创建myid文件:server ID和myid对应(三个服务器分别写入1,2,3)
      echo 1 >> /tmp/zookeeper/data/myid
      10.0.47.32服务器:创建myid文件:server ID和myid对应(三个服务器分别写入1,2,3)
      echo 2 >> /tmp/zookeeper/data/myid
      10.0.66.65服务器:创建myid文件:server ID和myid对应(三个服务器分别写入1,2,3)
      echo 3 >> /tmp/zookeeper/data/myid

      4.编辑配置文件:进入conf目录:cd zookeeper-3.4.13/conf,
      将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名):cp zoo_sample.cfg zoo.cfg,
      进入zoo.cfg文件进行编辑:vim zoo.cfg,
      按 i 进入编辑模式,修改以下内容(修改之前看端口号是否被占用):
        tickTime=2000
        initLimit=10
        syncLimit=5
        dataDir=/tmp/zookeeper/data
        dataLogDir=/tmp/zookeeper/log
        clientPort=2181
        server.1=10.0.66.50:2888:3888
        server.2=10.0.47.32:2888:3888
        server.3=10.0.66.65:2888:3888
      参数说明

        tickTime:指 zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔。
        initLimit:用来指定zookeeper 集群中leader接受follower初始化连接时最长能忍受的心跳时间间隔数。若超过 指定个心跳的时间间隔leader还没有收到follower的响应,表明follower连接失败。
        syncLimit:指定 leader与follower之间请求和应答时间最长不能超过多少个 tickTime 。
        dataDir:快照日志的存储路径。
        dataLogDir:事物日志的存储路径,如果不配置该路径,当zk吞吐量较大的时,会严重影响zk的性能。
        clientPort:客户端连接 zookeeper 服务器的端口,默认为2181。
        server.1 这个1是服务器的标识也可以是其他的数字,这个标识要写到dataDir目录下面myid文件里。
        server.1=hostname:2888:3888,hostname后面的第一个端口2888主要用于leader和follower之间的通信,第二个端口3888主要用于选主。
      5.配置zookeeper环境变量,首先打开profile文件,vim /etc/profile 按i进入编辑模式,在文件末尾添加zookeeper环境变量
        #set zookeeper environment
        export ZK_HOME=/usr/local/zookeeper/zookeeper-3.4.13/
        export PATH=$ZK_HOME/bin:$PATH
      保存文件后,让该环境变量生效 source /etc/profile
      6.另外两台也一样安装
      7.启动zookeeper
        '/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh start'
      8.查看zookeeper状态
        '/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh status'
      9.停止zookeeper
        '/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh stop'
    三.安装kafka:
      1.可以wget下载kafka_2.11-2.1.1.tgz,也可以下载到本机安装包,然后用rz命令传到服务器/usr/local/kafka路径下。
      2.解压缩,用解压缩命令,tar -zxvf kafka_2.11-2.1.1.tgz解压。
      3.配置kafka环境变量,vim /etc/profile,按i进入编辑模式,在文件末尾添加kafka环境变量
        #set kafka environment
        export KAFKA_HOME=/usr/local/kafka/kafka_2.11-2.1.1
        PATH=${KAFKA_HOME}/bin:$PATH
      保存文件后,让该环境变量生效
        source /etc/profile
      4.10.0.66.50服务器,修改配置文件config下面的server.properties
        broker.id=1
        listeners = PLAINTEXT://10.0.66.50:9092
        log.dirs=/tmp/kafka/log
        zookeeper.connect=10.0.66.50:2181,10.0.47.32:2181,10.0.66.65:2181

      10.0.47.32服务器,修改配置文件server.properties
        broker.id=2
        listeners = PLAINTEXT://10.0.47.32:9092
        log.dirs=/tmp/kafka/log
        zookeeper.connect=10.0.66.50:2181,10.0.47.32:2181,10.0.66.65:2181

      10.0.66.65服务器,修改配置文件server.properties
        broker.id=3
        listeners = PLAINTEXT://10.0.66.65:9092
        log.dirs=/tmp/kafka/log
        zookeeper.connect=10.0.66.50:2181,10.0.47.32:2181,10.0.66.65:2181
      主要修改一下四个地方:
        1) broker.id 需要保证每一台kafka都有一个独立的broker
        2) listeners = PLAINTEXT://当前虚拟机ip地址:9092
        3) log.dirs 数据存放的目录
        4) zookeeper.connect zookeeper的连接地址信息
      5.启动kafka(要确保zookeeper已启动),每台主机上分别启动kafka。
        /usr/local/kafka/kafka_2.11-2.1.1/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-2.1.1/config/server.properties
      6.创建一个名称为test-topic-7的Topic,7个分区,并且复制因子为3,执行如下命令:
        /usr/local/kafka/kafka_2.11-2.1.1/bin/kafka-topics.sh --create --zookeeper 10.0.66.50:12181,10.0.47.32:12181,10.0.66.65:12181 --replication-factor 3 --partitions 7 --topic     test-topic-7
      7.查看创建的topic信息,进入kafka的bin目录下,执行如下命令:
        /usr/local/kafka/kafka_2.11-2.1.1/bin/kafka-topics.sh --describe --zookeeper 10.0.66.50:12181,10.0.47.32:12181,10.0.66.65:12181 --topic test-topic-7
      8.在其中一台服务器启动生产者(producer)
        /usr/local/kafka/kafka_2.11-2.1.1/bin/kafka-console-producer.sh --broker-list 10.0.66.50:9092,10.0.47.32:9092,10.0.66.65:9092 --topic test-topic-7
      9.在任意议一台服务器启动消费者(consumer),接受消息
        /usr/local/kafka/kafka_2.11-2.1.1/bin/kafka-console-consumer.sh --bootstrap-server 10.0.66.50:9092,10.0.47.32:9092,10.0.66.65:9092 --topic test-topic-7 --from-beginning

      10.如果consumer服务器接收到producer服务器输入的内容,则启动集群成功。

      执行生产者命令,在生产者命令窗口输入消息。

      执行消费者命令,在消费者命令窗口显示消息。

     

     

      

      

  • 相关阅读:
    文艺青年、普通青年、2b青年到底是什么意思?
    CMake快速入门教程:实战
    shell脚本中变量$$、$0等的含义
    工作上的C/C++相关
    C/C++的一些备忘
    shell基础二十篇 一些笔记
    C++中this指针的用法详解
    【C++11】新特性——auto的使用
    一个很不错的bash脚本编写教程
    容器
  • 原文地址:https://www.cnblogs.com/fzdsy/p/11482583.html
Copyright © 2011-2022 走看看