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 的安装和基本的操作就完成了。