Kafka 安装和基本操作 - 知乎专栏·「我是程序员」

502 阅读1分钟
原文链接: zhuanlan.zhihu.com

Kafka 安装和基本操作

操作系统

Kafka 依赖于 ZooKeeper,我们使用 Docker 下的 ZooKeeper 官方镜像(Docker可以使用命令 yum install -y docker 进行安装):

$ docker pull zookeeper

启动 Docker 容器:

$ docker run --name kafka -i -t -d -p 19092:9092 zookeeper /bin/bash

进入 Docker 容器:。

$ docker attach kafka

PS:docker attach 当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。

安装 Kafka

依次执行以下命令:

wget http://mirrors.shu.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz
tar -zxvf kafka_2.11-2.0.0.tgz
mv kafka_2.11-2.0.0 /usr/local/bin/kafka

设置环境变量

修改配置文件:

vi /etc/profile
export KAFKA_HOME=/usr/local/bin/kafka             
export PATH=$PATH:$KAFKA_HOME/bin

使环境变量生效:

source /etc/profile

创建工程目录

我们的 Demo 工程相关的配置都放到 /opt/oss/demo 目录下:

mkdir -p /opt/oss/demo 
mkdir -p /opt/oss/demo/zookeeper
mkdir -p /opt/oss/demo/zookeeper/conf
mkdir -p /opt/oss/demo/zookeeper/data
mkdir -p /opt/oss/demo/zookeeper/log
mkdir -p /opt/oss/demo/kafka
mkdir -p /opt/oss/demo/kafka/conf
mkdir -p /opt/oss/demo/kafka/data
mkdir -p /opt/oss/demo/kafka/log

配置 zookeeper

cp /conf/zoo_sample.cfg /opt/oss/demo/zookeeper/conf/zoo.cfg
vi /opt/oss/demo/zookeeper/conf/zoo.cfg
dataDir=/opt/oss/demo/zookeeper/data
server.1=192.168.31.211:2888:3888

配置 Kafka

cp /usr/local/bin/kafka/config/server.properties /opt/oss/demo/kafka/conf/server.properties
vi /opt/oss/demo/kafka/conf/server.properties
log.dirs=/opt/oss/demo/kafka/log

启动 zookeeper

cd /opt/oss/demo/zookeeper
nohup zkServer.sh start /opt/oss/demo/conf/zoo.cfg &

输出会重定向到当前目录的 nohup.out

cat nohup.out 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo.cfg
Starting zookeeper ... STARTED

启动 Kafka

nohup kafka-server-start.sh /opt/oss/demo/kafka/conf/server.properties &

创建一个 topic

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
Created topic "demo".

启动一个消费者并生产一个消息

kafka-console-producer.sh --broker-list localhost:9092 --topic demo
>It's the first message from Kafka demo.

在宿主机新建一个窗口进入 Docker 容器,并启动一个消费者

docker exec -it kafka /bin/bash
source /etc/profile
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning
It's the first message from Kafka demo.

from-beginnig 参数可以读取历史未消费的数据。

至此,Kafka 的安装和基本的操作就完成了。