zoukankan      html  css  js  c++  java
  • kafka分布式集群的搭建

    使用ZooKeeper+kafka搭建高可用集群。

    1 前提准备

    • ZooKeeper安装包:apache-zookeeper-3.6.1-bin.tar.gz

    • kafka安装包:kafka_2.13-2.6.0.tgz

    • jdk1.8及以上(自行配置环境变量)

    • 假设为三台服务器搭建kafka集群(192.168.12.86、192.168.12.87、192.168.12.88)

    2 集群架构

    2.1 ZooKeeper集群方案

    主机IP消息端口通信端口节点目录
    192.168.12.86 2181 2888:3888 /db/dev/env/zookeeper/zk1
    192.168.12.87 2181 2888:3888 /db/dev/env/zookeeper/zk2
    192.168.12.88 2181 2888:3888 /db/dev/env/zookeeper/zk3

    2.2 kafka集群

    主机IP集群通信端口节点目录
    192.168.12.86 9092 /db/dev/env/kafka/kafkaServer/kafka
    192.168.12.87 9092 /db/dev/env/kafka/kafkaServer/kafka
    192.168.12.88 9092 /db/dev/env/kafka/kafkaServer/kafka

    3 ZooKeeper集群搭建

    3.1 解压安装包

    [dev@datanode6 zookeeper]$ tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz -C zkServer/

    3.2 修改配置文件

    配置环境变量命令:

    vim /etc/profile

    添加后

    #zookeeper
    export ZOOKEEPER_HOME=/db/dev/env/zookeeper/zkServer/apache-zookeeper-3.6.1-bin
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
    
    #JDK
    export JAVA_HOME=/db/java8
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    使环境变量生效:

    source /etc/profile

    添加zoo.cfg

    cd /opt/zookeeper/zookeeper-3.4.13/conf

    复制一份zoo_sample.cfg改名为zoo.cfg并添加配置

    cp zoo_sample.cfg zoo.cfg
    vim zoo.cfg

    修改为:

    dataDir=/db/dev/env/zookeeper/zkServer/apache-zookeeper-3.6.1-bin

    添加:vim zoo.cfg

    dataDir=/db/dev/env/zookeeper/zkServer/zkinfo/data/data_1
    dataLogDir=/db/dev/env/zookeeper/zkServer/zkinfo/logs/logs_1
    server.0=192.168.12.86:2888:3888
    server.1=192.168.12.87:2888:3888
    server.2=192.168.12.88:2888:3888

    添加data文件夹:

    [root@hadoop2 zookeeper-3.4.13]# mkdir data

    创建myid根据serverip对应填写0 1 2

    [root@hadoop2 data]# vim myid

    3.3 修改防火墙打开对应端口

    (以下命令为centos6 请自行为端口打开防火墙)

    vi /etc/sysconfig/iptables 

    添加

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 2888 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3888 -j ACCEPT

    备注:这里使用2181/2888/3888是Zookeeper需要用到的端口号,22端口是用来远程的端口,可以不用添加。一般将需要开放的端口号添加到“-A INPUT -p tcp -m state --state NEW -m tcp--dport 22 -j ACCEPT”行的上面或者下面,切记不要添加到最后一行,否则防火墙重启后不生效

    重启防火墙:

    service iptables restart 

    3.4 启动 ZooKeeper

    zkServer.sh start

    查看状态

    zkServer.sh status

    4 Kafka搭建集群

    4.1 请将程序包放到相应的目录下解压操作

    cd /kafka/config

    vim server.properties
    //三个节点都要根据不同的ip 设置broker.id=0 1 2
    broker.id=0
    delete.topic.enable=true
    listeners=PLAINTEXT://192.168.12.8*:9092
    log.dirs==/db/dev/env/kafka/kafkaServer/kafkainfo/kafka-logs1
    zookeeper.connect=192.168.12.86:2181,192.168.12.87:2181,192.168.12.88:2181
    cd bin
    ./kafka-server-start.sh -daemon ../config/server.properties
    
    
    jps 后出现
    20613 QuorumPeerMain
    38582 Kafka
  • 相关阅读:
    用react重构个人网站 3-23
    用react重构个人网站 3-22
    React官方文档笔记之快速入门
    .Net多线程编程—同步机制
    .Net多线程编程—Parallel LINQ、线程池
    .Net多线程编程—并发集合
    .Net多线程编程—任务Task
    【翻译】MongoDB指南/聚合——聚合管道
    【翻译】MongoDB指南/CRUD操作(四)
    【翻译】MongoDB指南/CRUD操作(三)
  • 原文地址:https://www.cnblogs.com/qiaoliming/p/13603012.html
Copyright © 2011-2022 走看看