蚂蚁课堂-2-kafka集群环境搭建

  1. 每天服务器都要安装jdk1.8环境
  2. 安装Zookeeper集群环境
  3. 安装kafka集群环境
  4. 运行测试
image.png
image.png

服务器环境准备

  • 使用vmare虚拟三台服务器 centos6.5
       A: 192.168.9.200
       B: 192.168.9.201
       C: 192.168.9.202
    

安装jdk1.8环境

zookeeper集群搭建

  • 参考文章

  • Zookeeper集群最好是奇数个节点,根据选举机制,半数以上的票数才能当选为leader(假如有两个节点,你选我,我选你,根据半数以上票数规则,是无法确定集群中到底是你来当leader还是我来当.

  • 下载地址:zookeeper-3.4.10.tar.gz

      tar zxvf zookeeper-3.4.10.tar.gz
      mv zookeeper-3.4.10.tar.gz zookeeper
      cd zookeeper/conf
      mv zoo_sample.cfg zoo.cfg
    
  • 修改zoo.cfg两处 vim zoo.cfg

      //数据目录,注意:在/usr/local/zookeeper/data 
      dataDir=/usr/local/zookeeper/data
      //日志目录,没有则自行创建
      dataLogDir=/usr/local/zookeeper/logs
      # zookeeper服务默认端口
      clientPort=2181                                                                                                                                       
      # zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,该服务默认端口是8080,这里可以自行配置
     admin.serverPort=2182
    
      //在文件末尾追加如下内容:(集群节点列表)
      server.0=192.168.9.200:2888:3888
      server.1=192.168.9.201:2888:3888
      server.2=192.168.9.202:2888:3888
    
    

    端口2888:Zookeeper服务之间的通信端口,比如leader和follower之间的通信
    端口3888:Zookeeper选举leader用的端口

  • 创建data和日志目录并创建myid

      cd /usr/local/zookeeper/
      mkdir data
      mkdir logs
      cd data
      vim myid 
      //将节点0标识写入myid文件中
      echo  0 > myid
    
  • 由于Zookeeper集群中的每一个Zk服务都会有一个唯一标识自己的ID(zk进程ID),这个ID应用在myid和zoo.cfg两个文件中,其中myid文件中存放的是当前Zk服务的标识ID,而zoo.cfg中以server.ID来指定当前的Zk服务进程对应的是哪一台主机,当Zk服务启动的时候,会首先读取myid中的id标识,拿着这个id再去zoo.cfg文件中进行匹配查找,查找的目的是为了弄清楚当前Zk服务在整个ZooKeeper集群中的位置.

  • 修改环境变量
    vim /etc/profile

      ### zookeeper
      export ZOOKEEPER_HOME=/usr/local/zookeeper
      export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
    

    source /etc/profile

  • 修改防火墙启动端口, vim /etc/sysconfig/iptables

      -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
      # 客户端连接zookeeper服务端的默认端口为218
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
      # kafka的默认端口
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT
    

    重启防火墙 /etc/init.d/iptables restart

  • 分别在B、C两台主机上的ZK安装目录下的data目录下创建myid文件,并依次写入值:1,2.

  • 分别启动三台zookeeper服务。

      //启动
      zkServer.sh start
      //查看状态
      zkServer.sh  status
    

kafka 集群搭建

  • 参考文章

  • kafka_2.11-1.0.0.tgz,下载地址:http://kafka.apache.org/downloads

  • 解压缩后,移动目录并修改名称

     mv kafka_2.11-1.0.0 /usr/local/kafka
    
  • 修改配置文件 cd kafka/config, vim server.properties

    // kafka节点位移标识
    broker.id=0
    //日志文件目录(需自行创建)
    log.dirs=/usr/local/kafka/logs
    //kafka监听主机端口
    listeners=PLAINTEXT://192.168.9.200:9092
    //zookeeper集群配置
    zookeeper.connect=192.168.9.200:2181,192.168.9.201:2181,192.168.9.202:2181
    
  • 配置环境变量

      ### kafka
      export KAFKA_HOME=/usr/local/kafka
      export     PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$PATH
    

    source /etc/profile

克隆B和C节点

  • 通过在vmware中克隆A, 得到B和C节点,注意:克隆完毕后网卡的MAC和IP都是一样的,所以需要登陆到B和C, 分别修改MAC和IP, 通过ifconfig -a eth1获取到MAC,然后修改将其修改,IP修改分别修改为:B:192.168.9.201, C: 192.168.9.202;
  • 修改B机的zookeeperkafka集群信息;
      //zookeeper
      vim /usr/local/zookeeper/data/myid 内容修改为:  `1` 
      //kafka
      vim /usr/local/kafka/config/server.properties
         broker.id=1
         listeners=PLAINTEXT://192.168.9.201:9092
    
  • 修改C机的zookeeperkafka集群信息;
    //zookeeper
    vim /usr/local/zookeeper/data/myid 内容修改为:  `2` 
    //kafka
    vim /usr/local/kafka/config/server.properties
       broker.id=2
       listeners=PLAINTEXT://192.168.9.202:9092
    
  • 三台节点分别启动zookeeper
      //启动
      zkServer.sh start
      //查看状态,可知其中一个是leader, 两外两个是follwer
       zkServer.sh status
    
  • 三台节点分别启动kafka
     kafka-server-start.sh  -daemon /usr/local/kafka/config/server.properties
     //查看kafka是否启动成功
      ps aux | grep kafka 或 netstat -tunlp | grep 9092
    
kafka启动成功标识
  • 创建kafka的topic主题
      bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 -partitions 3 --topic  myTest
    
  • myTest主题分区3,会在kafka集群中三个节点的日志 kafka/logs/ 中看到
      //以下三个日志目录 myTest代表主题名,数字0/1/2分别代表三个节点标识
      //注意这三个节点标识于brokerId不一样,
      // 是kafka创建主题时特定的算法平均将三个分区物理文件放入到三个节点
      //日志目录中的 00000000000000000000.log 就是真实的消息内容
      `myTest-0` 
      `myTest-1` 
      `myTest-2` 
    

使用ZooInspector可视化工具查看kafka注册到Zookeeper信息

  • 参考文章
  • 启动方式步骤,(我的windows jar包路径:D:\lxf\Program Files\ZooInspertor\build)
        java -jar zookeeper-dev-ZooInspector.jar
    
  • 连接zookeeper, 注意将超时时间session Timeout 设置长一些;


    image.png
  • 查看kafka集群及分区信息


    image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342