• kafka集群安装及简单使用


      关于kafka是什么及原理,请参考kafka官方文档的介绍:http://kafka.apache.org/documentation/#introduction ,英文不好的同学可以看这里http://ifeve.com/kafka-1/

      kafka依赖于zookeeper才能运行,而zookeeper运行需要jdk的支持,所以我们需要在linux系统上先行安装jdk和zookeeper。

      本人使用的centos7系统,安装步骤如下:

      1、jdk安装:

        rpm -qa | grep jdk   查看jdk信息,如果已经安装了openjdk,先卸载,命令 yum -y remove java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7;

        jdk下载地址 :http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

          下载好linux对应版本的压缩包后通过xftp传入到centos中。

        切换到压缩包所在目录,执行tar  -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/local/

        配置环境变量,在/etc/profile文件最后加上:

          export JAVA_HOME=/usr/local/jdk1.8.0_152
          export PATH=$JAVA_HOME/bin:$PATH
          export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

        source /etc/profile 使配置文件生效

      2、zookeeper安装:

        下载zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/

        下载好通过xftp传入到centos7中,放置在/opt/down/目录下

        执行命令:tar -zxvf zookeeper-3.4.12.tar.gz -C /usr/local/

        在zookeeper的conf目录下,将zoo_sample.cfg改名为zoo.cfg,cp zoo_sample.cfg zoo.cfg

        zookeeper启动时会读取该文件作为默认配置文件。

        启动(切换到安装目录的bin目录下):./zkServer.sh start

        关闭(切换到安装目录的bin目录下):./zkServer.sh stop

      3、kafka安装:

        下载kafka2.0.0:http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz

        下载好通过xftp传入到centos7中,放置在/opt/down/目录

        执行命令:tar -zvxf kafka_2.11-2.0.0.tgz -C /usr/local  

        进入kafka目录,敲入命令 bin/kafka-server-start.sh config/server.properties &,启动kafka

      这样我们就安装了一个单节点的kafka server,需要注意的是我们使用的默认配置,所以只能在本地访问,如果想配置允许客户端远程连接,可修改server.properties中的listeners和advertised.listeners,取消注释,并且加上kafka所在服务器的ip。

     

      简单使用:

        创建topic, bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myFirstTopic
        查看topic列表, bin/kafka-topics.sh --list --zookeeper localhost:2181
        发送消息 ,bin/kafka-console-producer.sh --broker-list localhost:9092 --topic myFirstTopic
        消费消息,在xshell另起一个窗口进入kafka目录,bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic myFirstTopic --from-beginning

      搭建多节点集群:

        我们已有1个kafka server 和1个zookeeper,所以再需要两个kafka server就可以搭建一个集群,由于在一个linux系统起三个同样的kafka节点,所以需要改一下配置文件

        cp config/server.properties config/server-1.properties

        cp config/server.properties config/server-2.properties

        编辑两个properties如下:

    config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dirs=/tmp/kafka-logs-1
    
    config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dirs=/tmp/kafka-logs-2

        启动两个节点:bin/kafka-server-start.sh config/server-1.properties &,bin/kafka-server-start.sh config/server-2.properties &

        创建一个新的topic,1个分区,3个节点,bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

        查看刚才创建的topic,bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

        “Leader”,负责指定分区所有读取和写入的节点。每个节点将是一部分随机选择的分区中的领导者。“Replicas”是此分区日志的节点列表集合,不管这些节点是否是领导者或者只是还活着(不在in-sync状态)。“ISR”是一组”in-sync” 节点列表的集合。这个列表包括目前活着并跟leader保持同步的replicas,Isr 是Replicas的子集。请注意,在我的例子节点2是该主题的唯一分区中的leader。

        查看myFirstTopic的详细信息:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic myFirstTopic

        可以看出myFirstTopic没有副本,只有我们创建它时只有唯一的节点0。

        测试容错性,kill掉主节点2,再次查看my-replicated-topic

        可以看出节点2挂掉后,节点1充当了新的leader。

  • 相关阅读:
    wcdb中使用rowid做查询条件
    [转载]Linux下断开SSH连接后,让程序继续在后台执行
    Mac OS X wants to use the “system” keychain 的解决方案
    wcdb的主键和唯一性
    type(),dir(),getattr(),hasattr(), isinstance()用法
    获取昨天日期
    二分法
    三次握手和四次挥手
    py2和py3之间的不同
    flask 接收参数小坑
  • 原文地址:https://www.cnblogs.com/hhhshct/p/9640476.html
Copyright © 2020-2023  润新知