• ELK 环境搭建4-Kafka + zookeeper


    一、安装前准备

      1、节点

        192.168.30.41

        192.168.30.42

        192.168.30.43

      2、操作系统: Centos7.5

      3、安装包

        a、java8:  jdk-8u181-linux-x64.tar.gz

        b、elasticsearch  kafka_2.11-0.11.0.2.tgz

        c、zookeeper    zookeeper-3.4.5-cdh5.4.5.tar.gz

      4、备注:

        相应版本安装包可直接在本人网盘下载,链接:https://pan.baidu.com/s/1cs4IidkSVoMDAdQW93VDYQ

    二、安装java环境

      1、详见ELK 环境搭建1-elasticsearch

    三、安装zookeeper集群

      1、创建账号与配置环境变量

        useradd zkkafka && su - zkkafka    

        mkdir -p /application/elk/zookeeper

        tar zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /application/elk/zookeeper

        rm -rf zookeeper-3.4.5-cdh5.14.2.tar.gz

        设置环境变量 vim ~/.bash_profile添加

          export ZOOKEEPER_HOME=/application/elk/zookeeper
          export PATH=$PATH:$ZOOKEEPER_HOME/bin

        加载环境变量

          source ~/.bash_profile

      2、修改配置文件 vim /application/elk/zookeeper/conf/zoo.cfg

    tickTime=2000
    initLimit=10
    syncLimit=5
    # **数据文件目录与日志目录**
    dataDir=/application/elk/zookeeper/zkdata
    dataLogDir=/application/elk/zookeeper/zkdatalog
    clientPort=2181
    server.1=192.168.30.41:2888:3888
    server.2=192.168.30.42:2888:3888
    server.3=192.168.30.43:2888:3888
    #server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
    #192.168.30.41和42为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
    
    #tickTime:
    这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
    #initLimit:
    这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器>还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
    #syncLimit:
    这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
    #dataDir:
    快照日志的存储路径
    #dataLogDir:
    事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
    #clientPort:
    这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

      3、创建所需目录:

        mkdir -p /application/elk/zookeeper/zkdata
        mkdir -p /application/elk/zookeeper/zkdatalog
        mkdir -p /application/elk/zookeeper/logs

      4、添加myid vim /application/elk/zookeeper/zkdata/myid  

        #添加

        1

        注意: 此数字来源于zoo.cfg中配置 server.1=192.168.30.41:2888:3888行server后面的1,故192.168.30.42填写2,192.168.30.43填写3  

      5、配置日志目录 vim /application/elk/zookeeper/libexec/zkEnv.sh修改以下参数

        ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs"
        ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

        vim /application/elk/zookeeper/conf/log4j.properties

          zookeeper.root.logger=INFO, ROLLINGFILE
          zookeeper.log.dir=/application/elk/zookeeper/logs
          log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender

      6、其它两个节点除myid文件要填入的不一样其它都做和上述相同操作

      7、相应操作

        a、启动

          /application/elk/zookeeper/bin/zkServer.sh start

        b、查看节点状态,有两种状态:leader 和 follower

          /application/elk/zookeeper/bin/zkServer.sh status 

        c、查看进程

          jps

        d、停止

          /application/elk/zookeeper/bin/zkServer.sh stop

    四、安装kafka

       1、创建账号并设置环境变量

        mkdir -p /application/elk/kafka

        useradd kafka && su - kafka

        tar zxvf kafka_2.12-1.1.0.tgz -C /application/elk/kafka

        rm -rf kafka_2.12-1.1.0.tgz

        设置环境变量:vim ~/.bash_profile

          export KAFKA_HOME=/application/elk/kafka
          export PATH=$PATH:$KAFKA_HOME/bin

      2、添加配置文件

    ############################# Server Basics #############################
    broker.id=0
    #当前机器在集群中的唯一标识,和zookeeper的myid性质一样,192.168.30.41为0,192.168.30.42为1,192.168.30.43为2 
    
    ############################# Socket Server Settings #############################
    
    port=9092
    #当前kafka对外提供服务的端口默认是9092 
    
    num.network.threads=3
    #这个是borker进行网络处理的线程数 
    
    num.io.threads=8
    #这个是borker进行I/O处理的线程数 
    
    socket.send.buffer.bytes=102400
    #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能 
    
    
    socket.receive.buffer.bytes=102400
    #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘 
    
    
    socket.request.max.bytes=104857600
    #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小 
    
    
    ############################# Log Basics #############################
    
    log.dirs=/application/elk/kafka/data/kafka/kafka-logs
    #消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录 
    #如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个 
    
    
    num.partitions=3
    #默认的分区数,一个topic默认1个分区数,有多少个分区就可以多少个消费者并行消费,但多个分区就不保证消息顺序了 
    
    
    num.recovery.threads.per.data.dir=1
    
    
    ############################# Internal Topic Settings  #############################
    offsets.topic.replication.factor=1
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    
    ############################# Log Flush Policy #############################
    
    ############################# Log Retention Policy #############################
    
    log.retention.hours=720
    #默认消息的最大持久化时间,720小时,30天;默认168小时,7天 
    
    
    log.retention.bytes=10737418240 
    #日志数据存储的最大字节数10737418240Byte,即10GB;默认1073741824Byte,即1GB 
    
    log.segment.bytes=268435456 
    #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件,256MB 
    
    log.retention.check.interval.ms=300000
    
    
    message.max.byte=5242880 
    #消息保存的最大值5M 
    
    default.replication.factor=2
    #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务,必须小于等于集群节点数 
    
    replica.fetch.max.bytes=5242880 
    #取消息的最大直接数
    
    ############################# Zookeeper #############################
    
    zookeeper.connect=192.168.30.41:2181,192.168.30.42:2181,192.168.30.43:2181
    
    # Timeout in ms for connecting to zookeeper
    zookeeper.connection.timeout.ms=10000
    
    
    ############################# Group Coordinator Settings #############################
    
    group.initial.rebalance.delay.ms=0
    
    
    
    
    delete.topic.enable=true

      3、创建所需目录

        mkdir -p /application/elk/kafka/data/kafka/kafka-logs

      4、其它两个节点除了配置文件中broker.id分别为1和2之外其它都按照上面相同配置。

      5、启动kafka

        /application/elk/kafka/bin/kafka-server-start.sh -daemon /application/elk/kafka/config/server.properties

        -daemon 后台服务的方式启动

      6、查看进程

        jps

      7、停止kafka

        /application/hadoop/app/kafka/bin/kafka-server-stop.sh

      8、使用

        详见 ELK使用4-Kafka + zookpeer

          

  • 相关阅读:
    LoadScript
    Mac终端Terminal调用Sublime Text
    jquery ajax 提交 FormData
    ps切图设置
    bootstrap-select搜索框输入中文
    Homebrew安装
    清空file input框
    javascript 随机数区间
    Canvas与Image互转
    html空格小结
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/10082103.html
Copyright © 2020-2023  润新知