kafka环境安装

kafka 的安装及启动

安装 kafka 之前需要先安装以下依赖环境:

  • JDK 8
  • ZooKeeper
Linux环境下安装JDK:
  • 下载并安装。首先在Oracle官网https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载JDK1.8安装文件,下载 Linux 版本的 JDK 1.8 安装包。下载完成后通过以下命令解压到家目录下

    tar -zxvf jdk-8u211-linux-x64.tar.gz -C ~

  • 配置环境变量

    sudo vi /etc/profile

    在 profile 最后加上java的环境变量

    export JAVA_HOME=/home/hadoop/jdk1.8.0_211
    export JRE_HOME=/home/hadoop/jdk1.8.0_211/jre
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    

    使用以下命令使配置生效

    source /etc/profile

  • 使用以下命令查看是否安装成功

    java -version

安装zookeeper:

  • 下载ZooKeeper

进入ZooKeeper官网 https://mirrors.cnnic.cn/apache/zookeeper/ 进入对应的版本目录,选择版本号后面带有 bin 字样的下载文件进行下载

也可以使用 wget 命令进行下载

wget https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz

  • 安装

    在家目录下新建一个目录

    mkdir middleware

    将下载好的 zookeeper 解压到 middleware

    tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz -C ~/middleware/

    为了方便使用可以将 zookeeper 的安装目录添加到环境变量

    sudo vi /etc/profile

    export ZOOKEEPER_HOME=/home/hadoop/middleware/apache-zookeeper-3.6.0-bin
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin
    

    source /etc/profile

    进入 ZooKeeper 的 conf 目录,将 zoo.sample.cfg 重命名为 zoo.cfg

    cp zoo_sample.cfg zoo.cfg

    在 middleware 目录新建以下目录作为 zookeeper 快照目录和事务日志目录

    mkdir -p data/zookeeper/data

    mkdir -p data/zookeeper/logs

    修改配置文件

    vi zoo.cfg

    只需修改以下两项即可

    dataDir=/home/hadoop/middleware/data/zookeeper/data
    dataLogDir=/home/hadoop/middleware/data/zookeeper/logs
    
  • 验证

    使用以下命令启动 zookeeper

    zkServer.sh start

    用 jps 命令查看进程

    root@hadoopnode:/home/hadoop/middleware/apache-zookeeper-3.6.0-bin/conf# jps
    1944 Jps
    1912 QuorumPeerMai
    

    如果有 QuorumPeerMai 进程则启动成功

  • ZooKeeper基础配置说明:

配置项 默认值 说明
tickTime 2000ms ZooKeepe中的一个时间单元。ZooKeeper中所有时间都以这个时间单元为基准,进行整数倍配置,默认是2s
initLimit 10 Follower在启动过程中,会从Leader同步所有最新数据,确定自己能够对外服务的起始状态。当Follower在initLimt个tickTime还没有完成数据同步时,则Leader仍为Follower连接失败
syncLimit 5 Leader与Follower之间通信请和应的时间长度。若Leader在syncLimit个tickTime还没有收到Follower应答,则认为该Leader已下线
dataDir /tmp/zookeeper 存储快照文件的目录,默认情况下,事务日志也会存储在该目录上。由于事务日志的写性能直接影响ZooKeeper性能,因此建议同时配置参数dataLogDir
dataLogDir /tmp/zookeeper 事务日志输出目录
clientPort 2181 ZooKeeper对外端口

kafka单机环境部署

  • 进入kafka官网 http://kafka.apache.org/downloads 下载kafka

kafka环境安装_第1张图片

选择编译的二进制版本

wget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz

解压到 middleware 目录:

tar -zxvf kafka_2.12-2.5.0.tgz -C ~/middleware/

将kafka加入到环境变量

sudo vi /etc/profile

export KAFKA_HOME=/home/hadoop/middleware/kafka_2.12-2.5.0
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$KAFKA_HOME/bin

让修改生效

source /etc/profile

  • 修改配置。

    在 middleware/data 目录下创建 kafka-logs 目录,也可以把该目录创建在 kafka 的安装目录下

    mkdir ~/middleware/data/kafka-logs

    进入 kafka 的 config 目录,修改 server.properties 文件,修改以下两项即可

    Broker.id=0
    Log.dirs=/opt/data/kafka-logs
    
  • 验证

    启动 kafka 之前要先启动 ZooKeeper

    zkServer.sh start

    kafka-server-start.sh ~/middleware/kafka_2.12-2.5.0/config/server.properties

    在 kafka 启动时可以加上 -daemon 参数,该参数意思是以守护进程的形式启动 kafka

    kafka-server-start.sh -daemon ~/middleware/kafka_2.12-2.5.0/config/server.properties

    jps 查看进程,启动成功后会有以下进程

    1912 QuorumPeerMain
    3288 Kafka
    3692 Jps
    

    通过 ZooKeeper 客户端登录 ZooKeeper 查看目录结构

    zkCli.sh

    [zk: localhost:2181(CONNECTED) 0] ls /
    [admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]
    

    执行以下命令查看已启动的 kafka 代理节点:

    ls /brokers/ids

kafka伪分布式环境部署

KafkaServer 启动时需要加载一个用于 KafkaServer 初始化相关配置的 server.properties 文件,当然文件名可以任意,一个 server.properties 对应一个 KafkaServer 实例 。 Kafka 伪分布式就是在一台机器上启动多个 KafkaServer 来达到多代理的效果,因此要保证 broker.id 及 port 在同一台机器的多个 server.properities 中唯一。

在 middleware 目录下载新建以下目录

mkdir ~/middleware/data/kafka-logs/broker-0

mkdir ~/middleware/data/kafka-logs/broker-1

将 kafka 的 config 目录下的server.propreties文件复制一份并命名为 server-0.proprities,修改配置如下

broker.id=0
log.dirs=/opt/data/kafka-logs/broker-0
listeners=PLAINTEXT://your.host.name:9092	#设置代理服务器的监听地址,代理将使用它来创建服务器套接字,如果是在阿里云上配置,这里则设置为阿里云的内网ip
advertised.listeners=PLAINTEXT://your.host.name:9092	#api客户端将只用该地址和端口连接到代理的,如果是在阿里云上配置,这里则设置为阿里云的公网ip
delete.topic.enable=true	#在删除主题时将数据一并删除,为 false 则表示为标记删除

server-1.proprities 配置

broker.id=1
log.dirs=/opt/data/kafka-logs/broker-1
listeners=PLAINTEXT://your.host.name:9093	
advertised.listeners=PLAINTEXT://your.host.name:9093	
delete.topic.enable=true	

由于代理默认端口是9092,server.properties 没有设置端口则采用默认设置,因此在 server-0.properties 将 port 设置为 9093 。这个端口可以自定义,只要新端口没有被占用即可。

执行以下命令,分别启动 brokerld 为 0 和 1 的两个 KafkaServer:

kafka-server-start.sh -daemon ~/middleware/kafka_2.12-2.5.0/config/server-0.properties

kafka-server-start.sh -daemon ~/middleware/kafka_2.12-2.5.0/config/server-1.properties

再次查看 ZooKeeper 的 /brokers/ids 目录,会看到该目录下有两个节点:

[zk: localhost:2181(CONNECTED) 4] ls /brokers/ids
[0, 1]

你可能感兴趣的:(kafka,zookeeper)