目录
(一)安装准备
Zookeeper 和 Kafka 需要使用 Java1.7 版本以上的 Java 环境,因此需要先确认是否已安装好 Java 环境。
运用如下命令查看:
java -version
注意:以下操作均用root用户执行
(二)先安装zookeeper
1. 解压安装包到指定目录
tar -zvxf zookeeper-3.4.5.tar.gz -C /opt/
2. 配置系统环境变量
vim ~/.bash_profile
#zookeeper
export ZK_HOME=/opt/zookeeper-3.4.5
export PATH=$PATH:$ZK_HOME/bin
source ~/.bash_profile
3. 创建数据目录与日志目录
到zookeeper目录下
mkdir data
mkdir logs
4. 在data目录下创建一个myid的空文件
在zookeeper/data目录下执行
echo 1 > myid
5. 复制模板配置文件,生成配置文件
在zookeeper/config目录下
cp zoo_sample.cfg zoo.cfg
6. 修改配置文件zoo.cfg
增加如下内容
dataDir=/opt/zookeeper-3.4.5/data
dataLogDir=/opt/zookeeper-3.4.5/logs
server.1=本机IP:2888:3888
7. 启动zookeeper
在zookeeper/bin目录下执行
./zkServer.sh start
8. jps检测zookeeper是否存在
jps看到QuorumPeerMain进程就已经启动成功了
停止zookeeper命令
在zookeeper/bin目录下执行
./zkServer.sh stop
(三)安装kafka
1. 解压安装包到指定目录
tar -xvf kafka_2.11-2.3.1.tgz -C /opt/
2. 配置系统环境变量
vi ~/.bash_profile
#kafka
export KAFKA_HOME=/opt/kafka-2.3.1
export PATH=$PATH:$KAFKA_HOME/bin
source ~/.bash_profile
3. 创建日志目录
kafka目录下执行
mkdir logs
4. 修改配置文件server.properties(文件在kafka路径下的config目录中)
增加如下内容
打开注释:delete.topic.enable=true
auto.create.topics.enable=true
listeners=PLAINTEXT://本机IP:9092
log.dirs=/opt/kafka-2.3.1/logs
zookeeper.connect=zookeeper机器:2181
#设置分区数,如果要求数据顺序性,请务必设置成 1
num.partitions=1
5.修改 Kafka 启动脚本(此步可跳过)
在 Kafka 启动脚本中配置了 JVM 内存最大值,如果应用场景中有可能出现大数据量事务时,有可能导致 JVM 内存溢出,因此建议将该值改为 2-4G,kafka目录下执行如下命令:
vi bin/kafka-server-start.sh
将如下内容中第一个的 Xmx1G 改为 Xmx2G 或 Xmx4G,具体情况视服务器内存和应用场景而定。
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
6. 在启动zookeeper之后,后台启动kafka
nohup bin/kafka-server-start.sh config/server.properties &
6. jps验证是否有Kafka
(四)环境验证
kafka目录bin下执行
创建topic
./kafka-topics.sh --create --zookeeper 192.168.113.11:2181 --replication-factor 1 --partitions 1 --topic test
生产
./kafka-console-producer.sh --broker-list 192.168.113.11:9092 --topic test
运行完敲入相应需要生产的文字
消费(需要开启另一个窗口)
./kafka-console-consumer.sh --bootstrap-server 192.168.113.11:9092 --topic test --from-beginning
删除topic
./kafka-topics.sh --zookeeper 192.168.113.11:2181 --delete --topic test