zoukankan      html  css  js  c++  java
  • kafka集群安装和kafka-manager

    1、软件环境

    (3台服务器-测试)
    * mykafka1
    * mykafka2
    * mykafka3

    [root@localhost ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)
    [root@localhost ~]# lscpu
    [root@localhost ~]# free -m
    [root@localhost ~]# df -h
    [root@localhost opt]# hostnamectl set-hostname mykafka1
    [root@localhost opt]# yum list java*
    Installed Packages
    java-1.8.0-openjdk.x86_64 1:1.8.0.65-3.b17.el7 @anaconda
    java-1.8.0-openjdk-headless.x86_64 1:1.8.0.65-3.b17.el7
    [root@localhost opt]# yum list installed|grep java*
    java-1.8.0-openjdk.x86_64 1:1.8.0.65-3.b17.el7 @anaconda
    java-1.8.0-openjdk-headless.x86_64 1:1.8.0.65-3.b17.el7 @anaconda
    --如果没有安装java,则需要安装java
    --yum -y install java-1.8.0-openjdk*
    --centos 7 自带

    2 安装zookeeper

    下载安装包,本地安装包路径
    [root@mykafka1 opt]# ll
    total 88132
    -rw-r--r--. 1 root root 55201623 Nov 29 10:34 kafka_2.12-2.1.0.tgz
    -rw-r--r--. 1 root root 35042811 Nov 29 10:35 zookeeper-3.4.10.tar.gz
    [root@mykafka1 opt]# scp kafka_2.12-2.1.0.tgz zookeeper-3.4.10.tar.gz root@*:/opt/.
    [root@mykafka1 opt]# scp kafka_2.12-2.1.0.tgz zookeeper-3.4.10.tar.gz root@*:/opt/.
    --没有就下载
    --wget --no-check-certificate https://www.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
    [root@mykafka1 opt]# tar zxvf zookeeper-3.4.10.tar.gz -C /usr/local/
    [root@mykafka1 local]# cd /usr/local/zookeeper-3.4.10/
    [root@mykafka1 zookeeper-3.4.10]# mkdir {logs,data}
    [root@mykafka1 zookeeper-3.4.10]# cd conf/
    [root@mykafka1 conf]# cp zoo_sample.cfg zoo.cfg
    [root@mykafka1 conf]# cat /usr/local/zookeeper-3.4.10/conf/zoo.cfg |grep -Ev "^#|^$"
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/usr/local/zookeeper-3.4.10/data/
    dataLogDir=/usr/local/zookeeper-3.4.10/log/
    clientPort=2181
    server.1=*:2888:3888
    server.2=*:2888:3888
    server.3=*:2888:3888

    #server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
    #*为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

    创建myid文件
    #server1
    [root@mykafka1 conf]# echo "1" > /usr/local/zookeeper-3.4.10/data/myid
    #server2
    [root@mykafka2 conf]# echo "2" > /usr/local/zookeeper-3.4.10/data/myid
    #server3
    [root@mykafka3 conf]# echo "3" > /usr/local/zookeeper-3.4.10/data/myid

    1、myid文件和server.myid 在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识。
    2、zoo.cfg 文件是zookeeper配置文件 在conf目录里。
    3、log4j.properties文件是zk的日志输出文件 在conf目录里用java写的程序基本上有个共同点日志都用log4j,来进行管理。

    [root@mykafka1 conf]# head -n 30 log4j.properties
    # Define some default values that can be overridden by system properties
    zookeeper.root.logger=INFO, CONSOLE
    zookeeper.console.threshold=INFO
    zookeeper.log.dir=.
    zookeeper.log.file=zookeeper.log
    zookeeper.log.threshold=DEBUG
    zookeeper.tracelog.dir=.
    zookeeper.tracelog.file=zookeeper_trace.log

    zkServer.sh 主的管理程序文件
    zkEnv.sh 是主要配置,zookeeper集群启动时配置环境变量的文件

    启动zookeeper 启动顺序zookeeper-1>zookeeper-2>zookeeper-3
    --/usr/local/zookeeper-3.4.10/bin/zkServer.sh start /usr/local/zookeeper-3.4.10/conf/zoo.cfg

    [root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    Starting zookeeper ... STARTED
    [root@mykafka2 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    Starting zookeeper ... STARTED
    [root@mykafka3 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    Starting zookeeper ... STARTED

    [root@mykafka1 config]# ps -ef|grep zookeeper

    查看leader
    --/usr/local/zookeeper-3.4.10/bin/zkServer.sh status /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    --[root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status
    [root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/conf/zoo.cfg
    Error contacting service. It is probably not running.
    发现错误,检查配置文件,应该没问题,可能是防火墙(3台一样的处理)
    [root@mykafka1 conf]# systemctl status firewalld.service
    [root@mykafka1 conf]# systemctl stop firewalld.service
    [root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh restart
    [root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Mode: follower

    3台都重启后,发现1位leader,另外两台是follower
    [root@mykafka1 conf]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Mode: leader
    [root@mykafka2 config]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Mode: follower
    [root@mykafka3 config]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Mode: follower

    3 Kafka集群搭建

    [root@mykafka1 opt]# tar zxvf kafka_2.12-2.1.0.tgz -C /usr/local/
    [root@mykafka1 opt]# cd /usr/local/kafka_2.12-2.1.0/config/
    broker.id=0
    listeners=PLAINTEXT://*:9092
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=*:2181,*:2181,1*:2181

    ---mykafka2
    broker.id=1
    listeners=PLAINTEXT://*:9092
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=*:2181,*:2181,*:2181

    --mykafka3
    broker.id=2
    listeners=PLAINTEXT://*:9092
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=*:2181,*:2181,*:2181

    [root@mykafka1 config]# vim /etc/profile
    export KAFKA_HOME=/usr/local/kafka_2.12-2.1.0
    PATH=${KAFKA_HOME}/bin:$PATH
    export PATH
    [root@mykafka1 config]# source /etc/profile

    启动kafka
    [root@mykafka1 config]# /usr/local/kafka_2.12-2.1.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.1.0/config/server.properties
    [root@mykafka1 config]# ps -ef|grep kafka

    创建topic–test
    --/usr/local/kafka_2.12-2.1.0/bin/kafka-topics.sh --create --zookeeper *:2181 --replication-factor 3 --partitions 3 --topic hongquan
    #解释
    --replication-factor 3 #复制3份
    --partitions 3 #创建3个分区
    --topic #主题为hongquan

    #创建一个broker,发布者

    /usr/local/kafka_2.12-2.1.0/bin/kafka-console-producer.sh --broker-list *:9092 --topic hongquan

    # 创建一个订阅者

    /usr/local/kafka_2.12-2.1.0/bin/kafka-console-consumer.sh --zookeeper *:2181 --from-beginning --topic hongquan

    /usr/local/kafka_2.12-2.1.0/bin/kafka-topics.sh --describe --zookeeper *:2181 --topic test
    查看topic
    /usr/local/kafka_2.12-2.1.0/bin/kafka-topics.sh --list --zookeeper *:2181,*:2181,*:2181
    查看topic状态
    /usr/local/kafka_2.12-2.1.0/bin/kafka-topics.sh --describe --zookeeper *:2181,*:2181,*:2181 --topic hongquan

    4 kafka-manager安装

    官网下载,git clone https://github.com/yahoo/kafka-manager.git,这里下载的需要进行源码编译,有点麻烦,这里采用编译好的包

    kafka-manager-1.3.3.7.zip 此安装包可以在baidu网盘上进行下载

    链接: https://pan.baidu.com/s/15dneVAnMx76qaKV2SuSKDw 提取码: knie

    [root@mykafka1 opt]# unzip kafka-manager-1.3.3.7.zip -d /data/
    [root@mykafka1 opt]# cd /data/kafka-manager-1.3.3.7/conf/
    [root@mykafka1 conf]# cp application.conf application.conf.bk
    [root@mykafka1 conf]# vim application.conf
    kafka-manager.zkhosts="*:2181,*:2181,*:2181"

    kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
    [root@mykafka1 kafka-manager-1.3.3.7]# nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &

    [root@mykafka1 kafka-manager-1.3.3.7]# tail -f -n 100 nohup.out

    -登录网址

    --http://*:8080

    添加cluster

    --点击查看

    ====

    源码编译参考文章:https://www.cnblogs.com/frankdeng/p/9584870.html

    [root@mykafka1 opt]# curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
    [root@mykafka1 opt]# mv bintray-sbt-rpm.repo /etc/yum.repos.d/
    [root@mykafka1 opt]# yum install sbt
    [root@mykafka1 opt]# sbt -version

    [root@mykafka1 opt]# cd /usr/local/kafka-manager-1.3.3.18/
    [root@mykafka1 kafka-manager-1.3.3.18]# ./sbt clean dist

  • 相关阅读:
    C# 创建与读写配置文件
    C# 绘图三种方式
    WindowsForms获取服务名称
    Hbase之JAVA API不能远程访问问题解决
    Jenkins之自动构建
    Jenkins配置匿名用户拥有只读权限
    XShell中文乱码问题解决
    mybatis之关联(2)
    mybatis之动态SQL
    mybatis之一对一关联
  • 原文地址:https://www.cnblogs.com/yhq1314/p/10097466.html
Copyright © 2011-2022 走看看