• Kafka集群环境搭建本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.1、准备工作Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)JDK1.8...

    Kafka集群环境搭建

    本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.

    1、准备工作

    Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)
    JDK1.8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    Zookeeperhttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/
    Kafkahttps://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

     


        

     

    2、开始搭建

    安装JDK(网上有很多详细安装步骤,本文不在赘述).

    配置&安装Zookeeper

    #我的目录统一放在/opt下面
    #首先创建Zookeeper项目目录
    mkdir zookeeper 
    
    #再进入新建好的zookeeper目录下创建模拟的三个服务器的项目目录(server1,server2,server3)
    mkdir server1
    mkdir server2
    mkdir server3
    
    #将下载好的zookeeper-3.4.10.tar.gz解压到三个server中.
    tar -zxvf zookeeper-3.4.10.tar.gz
    
    #在server1,server2,server3中分别创建下面两个文件夹
    mkdir data  #存放快照日志
    mkdir datalog #存放事物日志

     修改配置文件

    进入到解压后的zookeeper-3.4.10的conf目录.

    #进入conf目录
    /opt/zookeeper/server1/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf

    conf目录中的zoo_sample.cfg  这个文件是官方给我们的zookeeper的样板文件,我们复制一份命名为zoo.cfg保存在和样板文件同目录下(server1,server2,server3操作步骤一样),zoo.cfg是官方指定的文件命名规则。

    修改/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg文件如下:(代码中红色字体是需要我们更改的内容.)

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/server1/data
    dataLogDir=/opt/zookeeper/server1/datalog
    clientPort=2181
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890

    server2,server3中的/zookeeper-3.4.10/conf/zoo.cfg文件和server1中的更改内容大致相同,需要注意的是dataDir,dataLogDir属性的值要改为server2,server3相应的data和datalog目录clientPort=2181端口号要在server2和server3中分别改为 clientPort=2182 clientPort=2183

    配置文件解释:

    #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 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

    创建myid文件:

    #在server中的data文件夹下创建myid文件
    
    #server1
    /opt/zookeeper/server1/data/myid
    文件中内容为 1
    
    #server2
    /opt/zookeeper/server2/data/myid
    文件中内容为 2
    
    #server3
    /opt/zookeeper/server3/data/myid
    文件中内容为 3

    启动服务并查看

    1,启动服务

    #进入到Zookeeper的bin目录下
    #server1
    cd /opt/zookeeper/server1/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server2
    cd /opt/zookeeper/server2/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server3
    cd /opt/zookeeper/server3/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #启动成功后的信息(server1为例):
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/server1/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    2,检查服务状态

    #检查服务器状态
    ./zkServer.sh status
     
    #下面的状态为启动成功。
    ZooKeeper JMX enabled by default
    Using config: /home/user/zookeeper/server3/zookeeper3.4.10/bin/../conf/zoo.cfg
    Mode: follower      
    #Mode有两种类型:leader和follower,leader代表领导(主节点),follower代表下属(备节点)
    #zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

     至此,zookeeper集群就成功搭建完成了,接下来我们开始搭建kafka。

    配置&安装Kafka

    #创建目录
    cd /opt/
    mkdir kafka #创建项目目录
    cd kafka
    
    mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息-对应server1服务器
    
    mkdir kafkalogs1 #创建kafka消息目录,主要存放kafka消息-对应server2服务器
    mkdir kafkalogs2 #创建kafka消息目录,主要存放kafka消息-对应server3服务器
    
    #解压kafka_2.11-1.0.0.tgz到kafka目录下
    
    tar -zxvf kafka_2.11-1.0.0.tgz
    #如果是三台真实的linux服务器,只需要将kafka_2.11-1.0.0.tgz解压到三台服务器的/opt/kafka目录下,再新建kafkalogs即可。

    修改kafka配置文件

    #进入到config目录
    cd /opt/kafka/kafka_2.11-1.0.0/config/

    我们可以看到目录下有zookeeper的一些文件,这是kafka内置的zookeeper集群,我们可以使用它来直接启动,但建议使用独立的zookeeper集群。

    -rw-r--r--. 1 root root  906 Oct 27 08:56 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 Oct 27 08:56 connect-console-source.properties
    -rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
    -rw-r--r--. 1 root root  883 Oct 27 08:56 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 Oct 27 08:56 connect-file-source.properties
    -rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
    -rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
    -rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
    -rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
    -rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:54 server-1.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:56 server-2.properties
    -rw-r--r--. 1 root root  172 Jan  7 05:55 server.properties
    -rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
    -rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

    我们主要修改 server.properties 这个文件即可. 用以下代码覆盖server.properties里的内容进行保存.(这些是主要参数,以后需要自定义其他参数再做调整)

    broker.id=0
    listeners=PLAINTEXT://127.0.0.1:9092
    port=9092
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    因为我是在一台服务器搭建,可以将server.properties复制两份,分别命名为server1.properties,server2.properties,来模拟三台服务器。如果是在三台不同服务器,则不需要复制多份,只需要在三台服务器分别对server.properties进行配置即可.

    #在config目录下复制两份server.properties,并命名 server-1.propertis, server-2.propertis
    
    cp server.properties server-1.propertis
    
    cp server.properties server-2.propertis

    修改server1.properties如下:

    broker.id=1
    listeners=PLAINTEXT://127.0.0.1:9093
    port=9093
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs1
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    修改server2.properties如下:

    broker.id=2
    listeners=PLAINTEXT://127.0.0.1:9094
    port=9094
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs2
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    启动Kafka集群并测试

    1、启动服务

    #从后台启动Kafka集群(3台都需要启动)
    
    #进入到kafka的根目录 
    cd /opt/kafka/kafka_2.11-1.0.0
    
    #模拟启动三个配置文件,代表三台服务器.
    ./bin/kafka-server-start.sh -daemon config/server.properties
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    
    # 启动命令中的 -daemon 表示以守护进程的方式启动.

     2、测试kafka

    创建主题:

    #创建一个test主题,分区数为3,备份数为3
    #在kafka根目录执行下面命令
    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

    启动生产者:

    #kafka根目录执行,启动一个生产者
    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

    不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

    #启动消费者命令
    bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

    在生产者发送一条消息,查看消费者是否有接收成功。接收成功后kafka集成环境搭建完成。

    展开全文
  • 1:搭建kafka集群环境需要安装JDK、Zookeeper集群环境 JDK的安装可以参考https://mp.csdn.net/postedit/84196901这篇博客 Zookeeper集群环境的安装可以参考https://mp.csdn.net/postedit/84201320这篇博客,具体的...

    1:搭建kafka集群环境需要安装JDK、Zookeeper集群环境

    JDK的安装可以参考https://mp.csdn.net/postedit/84196901这篇博客

    Zookeeper集群环境的安装可以参考https://mp.csdn.net/postedit/84201320这篇博客,具体的步骤在博客上面有详细的说明

    2:kafka的安装和配置

    kafka下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

    #我的目录统一放在/opt

    #首先创建kafka文件夹

    cd /opt

    mkdir kafka  创建kafka文件夹

    cd kafka\

    mkdir kafkalogs      #创建kafka消息目录,主要存放kafka消息,对应server1服务器

    mkdir kafkalogs1    #创建kafka消息目录,主要存放kafka消息,对应server2服务器

    mkdir kafkalogs2    #创建kafka消息目录,主要存放kafka消息,对应server3服务器

    #解压kafka_2.11-1.0.0.tgz到kafka目录下

    tar -zvxf kafka_2.11-1.0.0.tgz

    #如果是三台真实的linux服务器,只需要将kafka_2.11-1.0.0.tgz解压到三台服务器的/opt/kafka目录下,再新建kafkalogs即可

    修改kafka配置文件

    #进入到config目录

    cd /opt/kafka/kafka_2.11-1.0.0/config/

    我们可以看到目录下有zookeeper的一些文件,这是kafka内置的zookeeper集群,我们可以使用它来直接启动,但建议使用独立的zookeeper集群。

    -rw-r--r--. 1 root root  906 Oct 27 08:56 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 Oct 27 08:56 connect-console-source.properties
    -rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
    -rw-r--r--. 1 root root  883 Oct 27 08:56 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 Oct 27 08:56 connect-file-source.properties
    -rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
    -rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
    -rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
    -rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
    -rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:54 server-1.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:56 server-2.properties
    -rw-r--r--. 1 root root  172 Jan  7 05:55 server.properties
    -rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
    -rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

    我们主要修改 server.properties 这个文件即可

    broker.id=0
    listeners=PLAINTEXT://127.0.0.1:9092
    port=9092
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    因为我是在一台服务器搭建,可以将server.properties复制两份,分别命名为server1.properties,server2.properties,来模拟三台服务器。如果是在三台不同服务器,则不需要复制多份,只需要在三台服务器分别对server.properties进行配置即可.

    #在config目录下复制两份server.properties,并命名 server-1.propertis, server-2.propertis
    
    cp server.properties server-1.propertis
    
    cp server.properties server-2.propertis

    修改server1.properties如下:

    broker.id=1
    listeners=PLAINTEXT://127.0.0.1:9093
    port=9093
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs1
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    修改server2.properties如下:

    broker.id=2
    listeners=PLAINTEXT://127.0.0.1:9094
    port=9094
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs2
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    启动kafka集群并测试

    1、启动服务

    #从后台启动Kafka集群(3台都需要启动)
    
    #进入到kafka的根目录 
    cd /opt/kafka/kafka_2.11-1.0.0
    
    #模拟启动三个配置文件,代表三台服务器
    ./bin/kafka-server-start.sh -daemon config/server.properties
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    
    # 启动命令中的 -daemon 表示以守护进程的方式启动
    

    2、测试kafka

    创建主题:

    #创建一个test主题,分区数为3,备份数为3
    #在kafka根目录执行下面命令
    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

    启动生产者:

    #kafka根目录执行,启动一个生产者
    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

    不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

    #启动消费者命令
    bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning
    

    生产者发送消息列表:

    消费者接收信息列表:

    在生产者发送一条消息,查看消费者是否有接收成功。接收成功后kafka集成环境搭建完成。

     

     

    展开全文
  • zookeeper安装部署 前提:必须安装java环境,最好1.8版本的jdk,配好环境变量 准备环境 三台Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164 ... 先把安装包拷入Linux系统中,目录为 /work/packag...

    zookeeper安装部署

    前提:必须安装java环境,最好1.8版本的jdk,配好环境变量

    1. 准备环境

      三台Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164

      zookeeper安装包:zookeeper-3.4.13.tar.gz

    2. 安装zookeeper

      先把安装包拷入Linux系统中,目录为 /work/package/zookeeper-3.4.13.tar.gz

      要安装的目录:/work/zookeeper-3.4.13

      cd /work 打开要解压的目录

      tar -zxvf package/zookeeper-3.4.13.tar.gz          解压文件

      cd zookeeper-3.4.13

      mkdir data               创建data目录

      mkdir log                创建log目录

      cd conf                 打开conf目录

      cp zoo_zample.cfg zoo.cfg                 复制zoo_zample.cfg为zoo.cfg

      vi zoo.cfg                     打开zoo.cfg

      i i在vi中代表要进行编辑,具体vi怎么使用请上网搜索

      找到 dataDir 修改他的值,并在他下面加一个键值对:

      dataDir=/work/zookeeper-3.4.13/data dataLogDir=/work/zookeeper-3.4.13/log

      在文件末尾加集群配置:

      server.1=172.52.0.162:2188:3188

      server.2=172.52.0.163:2188:3188

      server.3=172.52.0.163:2188:3188

      摁ESC退出编辑模式,输入 :wq  保存退出文件

      cd ..            退出到上级目录

      touch data/myid           data目录下新建myid文件(非常重要)

      echo 1 data/myid                myid文件输入1

      这样第一台机器大功告成,复制一份刚刚改好的zookeeper到第二台和第三台机器,并且删掉刚刚新建的myid文件,重新按照同样的方法创建myid ,第二台的值为 2 ,第三台的值为 3

      OK,三台服务器的zookeeper已经完成。

    3. 启动zookeeper

      cd /work/zookeeper-3.4.13/bin            进入zookeeper bin目录下

      ./zkServer.sh start          zookeeper启动,显示STARED即为启动成功

      ./zkServer.sh status         zookeeper状态查看,显示leader或者follower,三台只有一个为leader,其余俩为follower

      ./zkServer.sh stop          zookeeper停止,显示STOP即为停止

    kafka安装部署

    前提:在已经安装好zookeeper并且已经启动的情况下才能启动kafka

    1. 环境准备

      三台安装好zookeeper的Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164

      kafka安装包:kafka_2.11-0.10.2.0.tgz

    2. 安装kafka

      先把安装包拷入Linux系统中,目录为 /work/package/kafka_2.11-0.10.2.0.tgz

      要安装的目录:/work/kafka_2.11-0.10.2.0

      cd /work

      tar -zxvf package/kafka_2.11-0.10.2.0.tgz

      cd kafka_2.11-0.10.2.0

      mkdir logs

      cd config

      vi server.properties

      打开server.properties后编辑此配置文件,修改部分属性为:(第一台机器配置)

      broker.id=1

      listeners=PLAINTEXT://172.52.0.162:9092 此值集群是一定要配本机IP,否则会被识别为localhost

      advertised.listeners=PLAINTEXT://172.52.0.162:9092 此值集群是一定要配本机IP,否则会被识别为localhost

      log.dirs=/work/kafka_2.11-0.10.2.0/logs

      zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181 zookeeper集群地址

      修改完后将此kafka_2.11-0.10.2.0复制一份到第二台第三台机器,

      继续修改上述配置文件:(第二台机器配置)

      broker.id=2

      listeners=PLAINTEXT://172.52.0.163:9092

      advertised.listeners=PLAINTEXT://172.52.0.163:9092

      log.dirs=/work/kafka_2.11-0.10.2.0/logs

      zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181

      第三台机器配置:

      broker.id=3 三台此值一定不能重复

      listeners=PLAINTEXT://172.52.0.164:9092

      advertised.listeners=PLAINTEXT://172.52.0.164:9092

      log.dirs=/work/kafka_2.11-0.10.2.0/logs

      zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181

      配置完事,可以启动了!

    3. kafka启动

      cd /work/kafka_2.11-0.10.2.0

      ./bin/kafka-server-start.sh /config/server.properties

      此种方式启动kafka日志会直接打印到控制台,并且kafka不会再后台运行,关闭日志打印界面kafka就停掉了,所以需要稍作改动:

      ./bin/kafka-server-start.sh /config/server.properties 1>/dev/null 2>&1 &

      其中1>/dev/null 2>&1 是将命令产生的输入和错误都输入到空设备,也就是不输出的意思。/dev/null代表空设备。这样虽然可以在后台运行,但是不能永久运行kafka会几个小时后自动停下来,想永久后台运行得如下命令:./bin/kafka-server-start.sh -daemon /config/server.properties 1>/dev/null 2>&1 &

      每次输入此命令很麻烦,可以写一个shell脚本启动,新建一个文件为start.sh,然后输入一下命令:

      #!/bin/bash

      ./bin/kafka-server-start.sh -daemon /config/server.properties 1>/dev/null 2>&1 &

      大功告成,将此文件拷贝至/work/kafka_2.11-0.10.2.0 目录下即可

      启动,先定位到/work/kafka_2.11-0.10.2.0目录下,

      cd /work/kafka_2.11-0.10.2.0

      ./start.sh

      OK,启动完成!其他两台机器同理!
      关闭kafka,在任何目录下输入命令:  jps  显示kafka前面的那个数就是他的pid,用命令:kill -9 pid  即可杀死kafka进程,或者,用命令:ps -ef | grep kafka  查看kafka进程pid,命令下面第一行root前面的第一个数字即为pid ,用命令:kill pid同样可以杀死该进程。zookeeper同理,若关不掉就用狠点的方法直接杀死其进程,其他应用一样。

    最后送上一段很有道理的话:

    Several years ago, we didn't hava Tiktok,we used QQ. I haven't logged in my QQ for a long time. The other day I would like to download some pictures from my Qzone. So I download QQ again. Sadly I forgot my password. In order to get back my password, I had to answer a question that I set when I was in primary school. It was "What is your dream ?". I typed in "money". Uh-oh,no ,then I tried "a beautiful girlfriend". Uh-oh, no, then I typed in "fancy cars","big houses", "a decent job", wrong, wrong, wrong. Then I suddenly realized I didn't lose my password, I lost my dream .

    展开全文
  • 一、说明: 操作系统:linux kafka版本信息:kafka_2.11-0.8.2.1二、具体操作:1、安装kafka之间先检查操作系统中是否装有JDK,若没有点击打开链接有JDK安装步骤。2、关闭SELINUX、开启防火墙9092端口 2.1、关闭...

    一、说明:

            操作系统:linux

            kafka版本信息:kafka_2.11-0.8.2.1

    二、具体操作:

    1、安装kafka之间先检查操作系统中是否装有JDK,若没有点击打开链接有JDK安装步骤。

    2、关闭SELINUX、开启防火墙9092端口

        2.1、关闭SELINUX

            vi /etc/selinux/config
            #SELINUX=enforcing #注释掉
            #SELINUXTYPE=targeted #注释掉
            SELINUX=disabled #增加
            :wq! #保存退出

            setenforce 0 #使配置立即生效

        2.2、配置防火墙,开启9092端口
            vi /etc/sysconfig/iptables #编辑防火墙配置文件
            # Firewall configuration written by system-config-firewall
            # Manual customization of this file is not recommended.
            *filter
            :INPUT ACCEPT [0:0]
            :FORWARD ACCEPT [0:0]
            :OUTPUT ACCEPT [0:0]
            -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            -A INPUT -p icmp -j ACCEPT
            -A INPUT -i lo -j ACCEPT
            -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
            -A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT
            -A INPUT -j REJECT --reject-with icmp-host-prohibited
            -A FORWARD -j REJECT --reject-with icmp-host-prohibited

            COMMIT

            :wq! #保存退出

            service iptables restart #最后重启防火墙使配置生效

    3、安装kafka
        3.1、下载kafka
            cd /usr/local/src
            wget http://archive.apache.org/dist/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz
            注意,kafka_2.11-0.8.2.1.tgz版本是已经编译好的版本,解压就能使用。
            tar -xzvf kafka_2.11-0.8.2.1.tgz #解压
            mv kafka_2.11-0.8.2.1 /usr/local/kafka #移动到安装目录

        3.2、配置kafka
            mkdir /usr/local/kafka/log/kafka #创建kafka日志目录
            cd /usr/local/kafka/config #进入配置目录
            vi server.properties #编辑修改相应的参数
            broker.id=0
            port=9092 #端口号
            host.name=127.0.0.1 #为本地IP
            log.dirs=/usr/local/kafka/log/kafka #日志存放路径,上面创建的目录

            zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181

            :wq! #保存退出
            (ps:如若host.name的ip不设置为127.0.0.1,会报一下错误:

                    Bug:Socket server failed to bind to xxx.xxx.xxx.xxx:9092: Cannot assign requested address.                   
                             在ECS上面配置kafka的地址千万不要写外部地址,比如139.225.155.153(我随便写的),这样事绑定不上去的,因为 这个是阿里云内部;它会去内网去寻找他的 地址,所以配成127.0.0.1 会自动识别成本机地址/不然应该使用外网的映射地址。

            )
        3.3、配置zookeeper
            mkdir /usr/local/kafka/zookeeper #创建zookeeper目录
            mkdir /usr/local/kafka/log/zookeeper #创建zookeeper日志目录
            cd /usr/local/kafka/config #进入配置目录
            vi zookeeper.properties #编辑修改相应的参数
            dataDir=/usr/local/kafka/zookeeper #zookeeper数据目录
            dataLogDir=/usr/local/kafka/log/zookeeper #zookeeper日志目录
            clientPort=2181
            maxClientCnxns=100
            tickTime=2000
            initLimit=10

            syncLimit=5

            :wq! #保存退出

    4、创建启动、关闭kafka脚本
        cd /usr/local/kafka #进入kafka根目录

         #创建kafka启动脚本


        vi kafkastart.sh #编辑,添加以下代码
        #!/bin/sh
        cd /usr/local/kafka/bin/zookeeper-server-start.sh /home/xuqiang/kafka/config/zookeeper.properties &
        sleep 3 #等3秒后执行
        #启动kafka

       cd /usr/local/kafka/bin/kafka-server-start.sh /home/xuqiang/kafka/config/server.properties &

        :wq! #强制保存退出

        #创建kafka关闭脚本

        

        vi kafkastop.sh #编辑,添加以下代码:
        #!/bin/sh
        #关闭zookeeper
        /usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/config/zookeeper.properties &
        sleep 3 #等3秒后执行
        #关闭kafka
        /usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server.properties &

        :wq! #保存退出

       #添加脚本执行权限
        chmod +x kafkastart.sh

        chmod +x kafkastop.sh

    5、设置脚本开机自动启动
        vi /etc/rc.d/rc.local #编辑,在最后添加一行
        sh /usr/local/kafka/kafkastart.sh & #设置开机自动在后台运行脚本
        :wq! #保存退出
        sh /usr/local/kafka/kafkastart.sh #启动kafka
        sh /usr/local/kafka/kafkastop.sh #关闭kafka
    至此,Linux下Kafka单机安装配置完成。


    6、liunx下kafka生产者和消费者模式测试

        6.1、启动kafka

            sh /usr/local/kafka/kafkastart.sh
        6.2、创建topic test
        /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --    topic test
        6.3、查看topic
        ./usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
        6.4、启动producer发布消息
         ./usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
          (ps:此时在命令行输入: hello world!)
        6.5、启动consumer消费消息
            ./usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

          (ps:此时会显示hello world!)

    测试结果如下(我开了两个窗口便与测试):
        
        (ps:图1为producer生产者,图2为consumer消费者)

    展开全文
  • Kafka基本架构: 它的架构包括以下组件... Broker 服务代理Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic 话题每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic...

    zookeeper集群搭建地址https://blog.csdn.net/SpringCYB/article/details/89951158

    Kafka基本架构:

    • 它的架构包括以下组件:
    • Broker 服务代理 
      Kafka集群包含一个或多个服务器,这种服务器被称为broker
    • Topic  话题
      每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处)
    • Partition  分片
      parition是物理上的概念,每个topic包含一个或多个partition,创建topic时可指定parition数量。每个partition对应于一个文件夹,该文件夹下存储该partition的数据和索引文件
    • Producer 生产者
      负责发布消息到Kafka broker
    • Consumer  消费者
      消费消息。每个consumer属于一个特定的consuer group(可为每个consumer指定group name,若不指定group name则属于默认的group)。使用consumer high level API时,同一topic的一条消息只能被同一个consumer group内的一个consumer消费,但多个consumer group可同时消费这一消息。

    Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。kafka搭载zk,通常有3种模式:

    1. 单机模式,只安装部署一个server。

    2. 伪分布式集群模式,一台机器分别安装部署3个zk和kafka节点server。

    3. 分布式集群模式,3台以上机器(以3台为例),3台机器上分别安装部署3个zk和kafka节点server。

    本文仅以第二种:伪分布式集群模式讲解,安装部署为分布式集群的详细步骤。

    环境和版本:

    • linux(centos7_64位)+vm15pro
    • Jdk 1.8
    • Zookeeper-3.4.6
    • Kafka-2.12

    搭建开始:

    1.通过ssh工具将安装包上传至linux服务器

    当前目录在  /usr/kafka

    通过tar 命令解压缩:

    为了操作方便,重命名为kafka

    2.在 /usr/kafka 目录下创建三个文件夹  用来存放日志文件

    mkdir kafka-logs1

    mkdir kafka-logs2

    mkdir kafka-logs3

    3.修改配置文件

    进入解压出来的kafka中,进入config目录,通过vi打开server.properties,修改以下参数

    :wq! 命令保存。

    然后将server.properties 复制成三份,分别为server1.properties,server2.properties,server3.properties,

    先通过 mv server.properties server2.properties 命令重命名。

    然后通过 cp server2.properties server3.properties  和 cp server2.properties server1.properties 命令复制两份

    然后修改配置信息

    修改server2.properties如下:

    broker.id=1

    listeners=PLAINTEXT:// 192.168.***.***:9093此ip地址为本机ip

    port=9093

    log.dirs=/usr/kafka/kafka-logs2

    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

     

    修改server3.properties如下:

    broker.id=2

    listeners=PLAINTEXT:// 192.168.***.***:9094 此ip地址为本机ip

    port=9094

    log.dirs=/usr/kafka/kafka-logs3

    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    3.kafka集群配置完毕,启动Kafka集群并测试

    注意:

    (1)首先要保证zookeeper集群已启动

    (2)从后台启动Kafka集群(3台都需要启动)

    (3)进入到kafka的根目录 cd /usr/kafka/kafka

    模拟启动三个配置文件,代表三台服务器.

    ./bin/kafka-server-start.sh config/server1.properties

    ./bin/kafka-server-start.sh config/server2.properties

    ./bin/kafka-server-start.sh config/server3.properties

    如果报错需要修改kafka的堆内存分配

    进入kafka 的bin目录下

    vi kafka-server-start.sh

    默认是1G我们修改为256M,和128M

    export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

    然后,在启动,三台全部启动,如出现下图,stated则表示启动成功!

    4.测试kafka

    创建主题:

    创建一个test主题,分区数为3,备份数为3

    在kafka根目录执行下面命令

    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

    如出现下图  Created topic test.  则表示创建成功

    5.启动生产者:

    kafka根目录执行,启动一个生产者

    bin/kafka-console-producer.sh --broker-list 127.0.0.1(此ip地址为本机ip:9092 --topic test

    出现 > 输入符 则表示成功,此时端口号9092为生产者

    6.启动消费者

    不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

    bin/kafka-console-consumer.sh --bootstrap-server  127.0.0.1(此ip地址为本机ip):9093  (消费者端口号) --topic test --from-beginning

    7.验证:

    在生产者输入信息:

    消费者可以接收到

    搭建完成!

    1)查看当前所有的topic列表

    bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181

    2)看下topic的详情信息

    查看所有topic:

    bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181

    查看指定topic:

    bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic test

    展开全文
  • 因为kafka是依赖于zookeeper来协调管理的,安装kafka之前我们需要先安装zookeeper,而zookeeper的运行又需要jdk来编译,所以安装zookeeper之前应该先安装jkd。所以,我们需要依次安装:jdk——>zookeeper——>...
  • Kafka集群配置---Windows版   Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的。今天我们仅实现Kafka集群的配置。 前言 最近研究kafka,发现网上很多关于...
  • Kafka集群搭建及生产者消费者案例 本文搭建的集群是采3台机器,分别是server01,server02,server03。linux系统是centos6.7。 kafka需要配合zookeeper使用,在安装kafka之前,需要先安装zookeeper集群,关于安装...
  • linux下安装kafka 安装条件: 确保zookeeper已经安装成功。zookeeper安装过程见:https://www.cnblogs.com/expiator/p/9853378.html 1.下载kafka 进入Apache官网   ...
  • kafka集群环境搭建

    2016-08-30 10:34:49
    kafka集群测试环境搭建全记录。
  • centos7搭建kafka集群

    2020-04-28 06:42:10
    centos7搭建kafka集群 环境 提取码:uh51: jdk-8u201-linux-x64.tar.gz zookeeper-3.4.14.tar.gz kafka_2.12-2.2.0.tgz 服务器三台: 192.168.18.133 192.168.18.134 192.168.18.136 以下需要开放的端口 # 开放2888,...
  • 1、(千亿级kafka集群性能调优)集群信息 一个kafka集群,40台broker,基于Ambari,hdp管理(ambari_v2.5,hdp_v2.6) 10台broker配置5块3T盘 30台broker配置12块6T盘 每天所有生产端产生2000亿条左右的数据 消费端有...
  • 传包与解压2,创建log文件夹3,配置kafka4,分发配置好的kafka文件5,修改另两台文件中的broker.id值和host.name值6,启动kafka集群测试集群三台机器都使用jps命令检查命令行验证1 创建topic2 查看topic3 开启发送者...
  • zookeeper集群搭建和kafka集群搭建 环境 linux 开发机(主) 4台centos7虚拟机 192.168.0.201 192.168.0.202(nginx-kafka) 192.168.0.203 192.168.0.204 虚拟机配置 jdk1.8 jps zookeeper集群搭建 ...
  • 安装kafka eagle监控kafka集群 1、下载kafka eagle的压缩包并解压 wget https://github.com/smartloli/kafka-eagle-bin/archive/v1.2.7.tar.gz 解压 tar -zxvf xxx 2、配置环境变量 需要配置JAVA_HOME和KE_HOME的...
  • 目录 1、Kafka(0.10.0.1)概述 1.1、消息队列JMS 1.2、消息队列的优点 1.3、Kafka是什么 2、Kafka体系架构 1)消息 / 键 / 批次 2)Topic 3)Producer 4)Consumer 5)Consumer Group 6)...3、Kafka集群部署...
  • 有问题的地方望指出。 (零)linux 从零开始搭建... (一)环境介绍及所需安装包下载 --- kafka集群搭建 (二)搭建zookeeper集群 --- kafka集群搭建 (三)搭建kafka 集群 --- kafka集群搭建 (四)Kafk...
  • 一、kafka简介 Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调...可扩展性:kafka集群支持热扩展; 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止丢.
  • 为什么80%的码农都做不了架构师?>>> ...
1 2 3 4 5 ... 20
收藏数 7,160
精华内容 2,864