• kafka基础(3):kafka 单机与集群安装


    一. zookeeper安装

    kafka是依赖zk的,所以需要安装zk
    kafka支持单机和集群模式,学习阶段推荐使用单机,单机和集群在操作上是没有区别的。

    1. 单节点安装

    1.1. 安装

    1、下载
    https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
    
    2、上传解压
    [root@hadoop01 soft]# tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz 
    
    
    3、修改配置文件
    datadir:指向的目录存储的是zk的核心数据,所以不能使用tmp目录。
    [root@bigdata01 soft]# cd apache-zookeeper-3.5.8-bin/conf
    [root@bigdata01 conf]# mv zoo_sample.cfg  zoo.cfg
    [root@bigdata01 conf]# vi zoo.cfg 
    dataDir=/data/soft/apache-zookeeper-3.5.8-bin/data
    
    
    4、启动zk服务
    [root@hadoop01 apache-zookeeper-3.5.8-bin]# bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /data/soft/apache-zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    
    验证:看到QuorumPeerMain说明zk启动成功
    [root@hadoop01 apache-zookeeper-3.5.8-bin]# jps
    53850 QuorumPeerMain
    53916 Jps
    
    如果没有此进程,到logs看下zookeeper-*.out这个日志文件
    
    查看当前机器中zk服务的状态
    [root@hadoop01 apache-zookeeper-3.5.8-bin]# bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /data/soft/apache-zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: standalone
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    注意:使用zkServer.sh默认会连接本机2181端口的zk服务。
    默认情况下,zk会监听此端口。之后使用的时候需要知道zk监听的是哪个端口。

     

    1.2. 操作zk

    1、使用zk的客户端工具连接zk,进入zk命令行

    [root@hadoop01 apache-zookeeper-3.5.8-bin]# bin/zkCli.sh 
    Connecting to localhost:2181
    ...
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] 
    
    默认会连接本机的zk服务;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    连接特定的端口:
    bin/zkCli.sh -server localhost:18127
    
    • 1
    • 2

    2、操作

    zk的目录结构和linux文件系统的目录结构类似。
    zk的每一个目录称之为节点(ZNode),ZNode节点本身是可以存储数据的。

    常见操作:
    创建节点,查看节点,获取节点内容,删除节点,退出
    [zk: localhost:2181(CONNECTED) 1] create /test hello
    Created /test
    [zk: localhost:2181(CONNECTED) 2] ls /
    [test, zookeeper]
    [zk: localhost:2181(CONNECTED) 3] get /test
    hello
    [zk: localhost:2181(CONNECTED) 4] deleteall /test
    [zk: localhost:2181(CONNECTED) 5] ls /
    [zookeeper]
    [zk: localhost:2181(CONNECTED) 6] quit
    
    WATCHER::
    
    WatchedEvent state:Closed type:None path:null
    
    deleteall 是递归删除,delete只能删除空节点
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

     
     

    2. Zk的集群安装

    Running Replicated ZooKeeper

    1、集群节点规划

    使用三个节点搭建zk集群。(hadoop01,02,03)

    2、下载、上传,解压
    3、修改配置
    3.1、修改配置文件

    [root@bigdata01 soft]# cd apache-zookeeper-3.5.8-bin/conf/
    [root@bigdata01 conf]# mv zoo_sample.cfg  zoo.cfg  
    dataDir=/data/soft/apache-zookeeper-3.5.8-bin/data
    server.0=hadoop01:2888:3888
    server.1=hadoop02:2888:3888
    server.2=hadoop03:2888:3888
    
    
    两个端口号:进行对等体连接
    更具体的说,使用这两个端口号使得follwers能够在不同的情况下连接leader
    第一个端口号:当一个新的leader出现时,由TCP协议,使用此端口号可以连接leader
    第二个端口号:用来进行leader的选举。
    Finally, note the two port numbers after each server name: " 2888" and "3888". Peers use the former port to connect to other peers. Such a connection is necessary so that peers can communicate, for example, to agree upon the order of updates. More specifically, a ZooKeeper server uses this port to connect followers to the leader. When a new leader arises, a follower opens a TCP connection to the leader using this port. Because the default leader election also uses TCP, we currently require another port for leader election. This is the second port in the server entry.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.2、创建myid文件

    myid文件的值=zoo.cfg中server后指定的编号
    例如:0对应hadoop01这台机
    [root@bigdata01 conf]#cd /data/soft/apache-zookeeper-3.5.8-bin
    [root@bigdata01 apache-zookeeper-3.5.8-bin]# mkdir data
    [root@bigdata01 apache-zookeeper-3.5.8-bin]# cd data
    [root@bigdata01 data]# echo 0 > myid 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、拷贝到其他两个节点、修改myid

    拷贝
    [root@hadoop01 soft]# scp -rq apache-zookeeper-3.5.8-bin hadoop02:/data/soft/
    [root@hadoop01 soft]# scp -rq apache-zookeeper-3.5.8-bin hadoop03:/data/soft/
    
    修改myid
    [root@bigdata02 ~]# cd /data/soft/apache-zookeeper-3.5.8-bin/data/
    [root@bigdata02 data]# echo 1 > myid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、启动zk集群
    分别在三个节点上启动zk进程

    [root@bigdata01 apache-zookeeper-3.5.8-bin]# bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /data/soft/apache-zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    
    验证:
    [root@hadoop03 apache-zookeeper-3.5.8-bin]# jps
    17986 Jps
    17946 QuorumPeerMain
    
    
    查看:
    三个节点中有一个是leader,其他两个是follower
    [root@hadoop03 apache-zookeeper-3.5.8-bin]# bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /data/soft/apache-zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

     
     

    二. kafka安装

    kafka在启动的过程中需要开启zk。
    kafka启动的时候不需要scala环境,只有编译源码的时候需要, 运行的时候是在jvm运行的,所以需要jdk环境就可。

    1. 单机安装

    a. 下载、上传、解压
    b. 修改配置参数

    修改默认默认目录即可
    [root@bigdata01 kafka_2.12-2.4.1]# cd kafka_2.12-2.4.1/config/
    [root@bigdata01 config]# vi server.properties
    log.dirs=/data/soft/kafka_2.12-2.4.1/kafka-logs
    
    • 1
    • 2
    • 3
    • 4

    c. 启动kafka和关闭

    [root@hadoop01 kafka]# bin/kafka-server-start.sh -daemon config/server.properties 
    [root@hadoop01 kafka]# jps
    57105 QuorumPeerMain
    60132 Jps
    59710 Kafka
    [root@hadoop01 kafka]# bin/kafka-server-stop.sh 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

     
     

    2. kafka集群安装

    1、节点规划

    三个节点(Hadoop01,02,03)。
    三个节点没有主从之分,所有节点都是一样的

    2、单个节点配置

    针对集群模式需要修改

    • broker.id:集群节点id编号,单机模式不用修改。默认是从0开始进行递增。
    • listeners:默认监听9092端口
    • log.dirs:注意:这个目录不是存储日志的,是存储Kafka中核心数据的目录,这个目录默认是指向的tmp目录,所以建议修改一下
    • zookeeper.connect:
      依赖的zk集群的地址,可以指定及集群中的一个或多个节点,多个节点逗号隔开。
       
      针对单机模式,如果kafka和zk在一个节点上,并且zk监听的端口是默认的2181,则不需要修改

    配置:

    [root@hadoop01 soft]# cd kafka_2.12-2.4.1/config/
    [root@hadoop01 config]# vim server.properties 
    broker.id=0
    log.dirs=/data/kafka-logs
    zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
    
    
    发送kafka到其他两个节点
    [root@hadoop01 soft]# scp -rp kafka hadoop03:/data/soft/
    
    
    3、其他节点修改broker.id
    [root@bigdata03 ~]# cd /data/soft/kafka_2.12-2.4.1/config/
    [root@bigdata03 config]# vi server.properties 
    broker.id=2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4、启动集群
    分别在三个节点启动kafka进程

    [root@hadoop02 kafka]# bin/kafka-server-start.sh -daemon config/server.properties
    
    jps验证。 
    
    • 1
    • 2
    • 3
  • 相关阅读:
    关于JavaScript变量介绍
    持续集成(五)Jenkins配置父子job
    【密评】商用密码应用安全性评估从业人员考核题库(十一)
    Python中的日期和时间
    数据资产安全保卫战:构建多层次、全方位的数据安全防护体系,守护企业核心数据资产安全
    mysql限制用户登录失败次数,限制时间
    微软AI量化平台Qlib:你需要知道的核心知识点
    Python初级笔记6 函数
    Android原生数据库的基本使用和升级
    spinning
  • 原文地址:https://blog.csdn.net/hiliang521/article/details/126593083