kafka集群环境搭建

kafka集群环境搭建

作者:链上研发-老杨叔叔


最好的集成环境搭建文章:
本文档完全临摹自此文章

还不错的原理讲解

抄一遍:本搭建环境基于zookeeper 3.4.6,和kafka 0.10.0.0

1.说明

kafka集群依赖zookeeper,因此需要先安装zookeeper;
不过kafka本身也集也了zookeeper,但最好不要使用自带的。

2.zookeeper安装

  • 2.1 服务器

    A测试服务器上:10.8.1.160/home/fangyuan/kafka
    B测试服务器上:10.8.1.93/home/tomcat/kafka

  • 2.2 安装

    每台机器都有以下操作(或配置一台,复制到其它机器)

    • 2.2.1 安装jdk

      已存在,不需要安装

    • 2.2.2 下载zookeeper

          cd /home/fangyuan
          mkdir kafka #与kafka相关的根目录
      
          cd /home/fangyuan/kafka
          mkdir zookeeper #zookeeper项目目录
      
          cd /home/fangyuan/kafka/zookeeper
          mkdir zkdata #存放快照日志
          mkdir zkdatalog#存放事物日志
      
          下载软件
          cd /home/fangyuan/kafka/zookeeper
      
          wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
      
      
          解压软件
          tar -zxvf zookeeper-3.4.6.tar.gz
    • 2.2.3 配置zookeeper

        cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/conf
      
          zoo_sample.cfg  
          这个文件是官方给我们的zookeeper的样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则。
      
          复制文件:
          cp zoo_sample.cfg zoo.cfg
      
          打开文件:
          vi zoo.cfg
      
      
          配置:
      
          tickTime=2000
          initLimit=10
          syncLimit=5
          dataDir=/home/fangyuan/kafka/zookeeper/zkdata
          dataLogDir=/home/fangyuan/kafka/zookeeper/zkdatalog
          clientPort=12181
          server.1=10.8.1.93:12888:13888
          server.2=10.8.1.160:12888:13888
      
      
          server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
          192.168.7.107为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
      
      
          创建myid文件
          在10.8.1.160上创建如下,让zookeeper知道自己在哪台机器上(类型域名,通过个面的serve.1找到对应的ip)
          echo "1" > /home/fangyuan/kafka/zookeeper/zkdata/myid
      
          在10.8.1.93上创建93上的myid
  • 2.2.4 启动zookeeper

    进入到Zookeeper的bin目录下
    cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/bin

    启动服务(3台都需要操作)
    ./zkServer.sh start

    检查服务器状态
    ./zkServer.sh status
    显示如下:(如果Mode显示,等一会儿,重新执行status命令,有可能zookeeper还没完全启动)
    JMX enabled by default
    Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg  
    Mode: follower  #他是否为领导

    执行jps,查看进程,如果显示zookeeper则说明启动成功

3.kafka安装

  • 3.1 kafka下载

    • 3.1.1软件环境

      1、linux一台或多台,大于等于2
      2、已经搭建好的zookeeper集群
      3、软件版本kafka_2.11-0.10.0.0.tgz
      2、创建目录并下载安装软件

    • 3.1.2创建目录

      cd /home/fangyuang/kafka
      mkdir kafka #创建项目目录
      
      cd kafka
      mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息
      
    • 3.1.下载解压

      wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz
      
      解压软件
      tar -zxvf kafka_2.11-0.10.0.0.tgz
  • 3.2 修改配置文件

    
    #进入config目录
    
    cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/config/
    
    #打开配置文件
    
    vi server.properties
    
    
    #修改配置文件
    
    
    #broker.id=0  注释掉,每台服务器的broker.id都不能相同,
    
    
    #hostname 本机ip
    
    host.name=10.8.1.160
    port=19092 #不指定默认是9092
    
    #在log.retention.hours=168 下面新增下面三项     
    
    message.max.byte=5242880 
    default.replication.factor=2 
    replica.fetch.max.bytes=5242880
    
    #设置zookeeper的连接端口
    
    zookeeper.connect=10.8.1.160:12181,10.8.1.93:12181

作者:链上研发-老杨叔叔
版权声明:本文为链家上海研发中心原创文章,转载请注明出处。

  • 3.3启动

    从后台启动Kafka集群(3台都需要启动)
    
    cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/bin  
    
    ./kafka-server-start.sh -daemon  ../config/server.properties
    
    检查服务是否启动,如果显示kafka进程即启动成功
    运行:> jps
  • 3.4检证

    创建Topic来验证是否创建成功
    创建Topic
    
    ./kafka-topics.sh --create --zookeeper 10.8.1.160:12181 --replication-factor 2 --partitions 1 --topic my-topic
    
    解释
        --replication-factor 2   #复制两份
        --partitions 1 #创建1个分区
        --topic #主题为my-topic
        -- ip??
    
    
    在一台服务器上创建一个发布者
        创建一个broker,发布者(ip??,端口??)
        ./kafka-console-producer.sh --broker-list 10.8.1.160:19092 --topic my-topic
    
        此时:console处于阻塞状态,可以直接输入数据。
    
    在一台服务器上创建一个订阅者
        ./kafka-console-consumer.sh --zookeeper localhost:12181 --topic my-topic --from-beginning
    
        此时:一旦有数据生成,此处的console中会显示数据

4.监控

KafkaOffsetMonitor
http://www.cnblogs.com/yinchengzhe/p/5123515.html

http://top.jobbole.com/31084/

http://my.oschina.net/cjun/blog/514956

你可能感兴趣的:(kafka)