大数据环境搭建之Kafka伪分布式环境搭建步骤详解

Kafka简介

Kafka是一个消息中间件(http://kafka.apache.org/),可以提供高吞吐量、高容错、高性能的大型系统消息传送。Kafka的数据是持久的,有序的(同一分区),且可以指定读取位置。数据是分布式存储的,通过zookeeper同步。有关Kafka更详细介绍参照前述文章。
其他消息中间件有 ActiveMQ和RabbitMQ等。

环境准备

Linux:CentOS
Zookeeper:Kafak内置了zookeeper
Kafka: Scala 2.11-kafka_2.11-1.0.0.tgz(asc,sha512)
下载链接http://kafka.apache.org/downloads

解压安装

将安装文件加压到/opt/目录

tar -zxf kafka_2.11-1.0.0.tgz /opt

配置文件

进入解压后的Kafka目录

cd /opt/kafka_2.11-1.0.0

1、配置config目录下的server.properties文件

broker.id=0 #集群内不能重复
listeners=PLAINTEXT://:9092
#日志放入tmp目录
log.dirs=/tmp/kafka-logs
zookeeper.connect=bigdata:2181

注:如果zookeeper有三台集群
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
2、Kafka伪分布式配置
config目录下配置多个server.properties文件,添加以下配置文件后,一共有三个server.properties文件。因为在一台机器上启动,所以端口号不一样。如果是集群启动,都使用9092。

cd config
cp server.properties server-1.properties
cp server.properties server-2.properties

server-1.properties内容:

broker.id=1
listeners=PLANTEXT://:9093
log.dirs=/tmp/kafka-logs-1

server-2.properties内容:

broker.id=2
listeners=PLANTEXT://:9094
log.dirs=/tmp/kafka-logs-2

服务启动

因为启动命令后界面都会打印相关日志,新起一个窗口进行后续命令
1、启动内置的zookeeper

#kafka目录下执行
./bin/zookeeper-server-start.sh config/zookeeper.properties 

如果要后台运行,不打印日志:

#如果要后台运行,即使关闭窗口进程也不会中断
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &

2、启动kafka

#末尾添加&后,即时Ctrl+C后,进程还是在的,只要不关闭窗口
./bin/kafka-server-start.sh config/server.properties & 
./bin/kafka-server-start.sh config/server-1.properties &
./bin/kafka-server-start.sh config/server-2.properties &

启动以后三个窗口不要关闭,关闭后进程将中断。
zookeeper如果前台运行,关闭窗口会出现TIME_WAIT,过段时间进程没有了
在这里插入图片描述
可用如下命令查看端口占用程序的进程号
netstat -lnp | grep 2181
netstat -lntup

Topic相关操作

先创建一个topic,再发送此topic的消息。
kafka-topics.sh命令可以创建、描述、改变、删除一个topic,本文仅介绍前两个命令,后两个谨慎使用。
指定Topic名称为"firsttopic" 、分区数量(和集群数量相等)为3,复制数量为2.

./bin/kafka-topics.sh  --create --zookeeper bigdata:2181 --topic firsttopic --partitions 3 --replication-factor 2

查看刚才创建的topic的描述

./bin/kafka-topics.sh  --describe --zookeeper bigdata:2181 --topic firsttopic

查看有多少topic

./bin/kafka-topics.sh --zookeeper bigdata:2181 --list

控制台生产者

启动控制台生产者

./bin/kafka-console-producer.sh --topic firsttopic --broker-list bigdata:9092

控制台消费者

新建一个窗口,启动控制台消费者

./bin/kafka-console-consumer.sh --bootstrap-server bigdata:9092 --topic firsttopic

在生成者窗口输入消息“test”,按回车,消费者窗口会打印出消息。
如果要从头开始消费:

./bin/kafka-console-consumer.sh --bootstrap-server bigdata:9092 --topic firsttopic --from-beginning

猜你喜欢

转载自blog.csdn.net/weixin_42628594/article/details/84297888