安装Kafka集群
#切换目录
cd xmy
# 下载 Kafka 软件包到当前目录中
sudo wget https://labfile.oss.aliyuncs.com/courses/859/kafka_2.11-1.1.1.tgz
# 查看目录
ll
# 解压 Kafka 软件包
sudo tar -zxvf kafka_2.11-1.1.1.tgz
# 重命名 Kafka 软件包文件夹名称为 kafka
sudo mv kafka_2.11-1.1.1 kafka
#查看目录能看到kafka
ll
#进入到
cd kafka/config
#复制 server.properties 文件为 server-1.properties
sudo cp server.properties server-1.properties
#复制 server.properties 文件为 server-2.properties
sudo cp server.properties server-2.properties
# 将 Kafka 目录的执行权限授予当前用户
sudo chmod 777 -R kafka
#切换到启动 Zookeeper 命令所在的目录
cd /xmy/kafka/bin
#使用上级目录中的 config 目录中的 zookeeper.perperties 配置文件,运行当前目录下的 zookeeper-server-start.sh 命令,启动 Kafka 软件包自带的 Zookeeper
./zookeeper-server-start.sh ../config/zookeeper.properties
出现这个错误, 没有装JDK
在Linux下 安装JDK
在windows下 找的百度网盘资源 下载 JDK
链接:https://pan.baidu.com/s/1EA2vvtS5yqh1zo5hB8azGg
提取码:2757
使用Xshell 工具把windows下的工具传到Linux下
点击如果安转了 Xftp 会直接弹出以下弹框进行文件传输 如果没有则会提示安装
传输完成后 将文件移动到java目录下(可直接传输到这个目录下,传的时候没注意) 进行解压配置环境
# 名字太长 重命名为 jkd1.8 进行解压配置
sudo tar -zxvf jdk1.8
进行环境配置
进入 etc 目录 /etc/environment 修改Path,JAVA_HOME是JDK的目录
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin" export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export JAVA_HOME=/java/jdk1.8
配置所有用户的环境变量
为了预防重启后,配置的环境变量无效,配置所有用户的环境变量
进入 /etc/profile 在文本末尾添加
#set Java environment
export JAVA_HOME=/java/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
重启
sudo shutdown -r now
查看是否配置成功
继续上面配置Kafka
不要关闭当前命令行终端,在打开一个新的命令行终端
小技巧:在运行命令前加 nohup ,并且在运行命令后加 & 。这样,这个命令就会以 Linux 后台进程运行,关闭当前命令行终端也无影响。如运行:nohup ./zookeeper-server-start.sh …/config/server. properties & 命令,以后台进程启动 Zookeeper。
在新终端运行命令 jps
查看当前运行的 java 进程,如果看到名称为 QuorumPeerMain 的进程,说明 Zookeeper 启动成功
在新的命令行终端中编辑Kafka的三个配置文件(server.properties、 server-1.properties、server-2.properties),修改文件名和修改内容说明如下:
#切换到配置文件所在目录
cd /opt/kafka/config
#编辑 server-1.properties,编辑界面如下图所示。按上面的说明,修改相应参数,保存文件。
vi server-1.properties
# 同理,按上述表格中描述,编辑 server-2.properties 文件
vi server-2.properties
#切换到启动kafka命令所在目录
cd /kafka/bin
#使用配置文件 server.properties 启动第一个 Kafka Broker,注意:命令最后的 & 符号表示以后台进程启动,启动完成后,按回车键,回到命令行,启动另一个 Kafka Broker。
./kafka-server-start.sh ../config/server.properties &
#使用配置文件 server-1.properties 启动第二个 Kafka Broker 。启动完成后,按回车键,回到命令行,启动另一个 Kafka Broker 。
./kafka-server-start.sh ../config/server-1.properties &
#使用配置文件 server-2.properties 启动第三个 Kafka Broker。启动完成后,按回车键,回到命令行。
./kafka-server-start.sh ../config/server-2.properties &
#查看当前运行的java进程。如下图,出现三个 kafka 进程,说明三个 Broker 的 Kafka 集群启动成功。
jps
到现在 单机版的三个Broker 的 Kafka 集群安装成功
生产者生产消息,将消息发送到 Kafka 服务器(实际上消息存储到了 Kafka 中的 Topic 里面)。消费者消费消息,从 Kafka 服务器读取消息。这里的 Kafka 服务器相当于一个中间人,用于存储生产者和消费者交互的数据(消息),下一步我们要在 Kafka 集群上创建一个 Topic ,用于存储消息,创建一个消息生产者,向 Topic 发送消息。创建一个消息消费者,从 Topic 读取消息。
在 Kafka 集群中创建 Topic
在 Kafka 集群中创建一个 Topic ,名称为 myFirstTopic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myFirstTopic
查看 Topic 创建是否成功
./kafka-topics.sh --zookeeper localhost:2181 --list
在 /kafka/bin 目录下运行命令,启动消息生产者,用于向 Topic 发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic myFirstTopic
重新打开一个新的命令行终端,在 /kafka/bin 目录下运行命令,启动消息消费者,用于从 Topic 中读取消息:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic myFirstTopic
在消息生产者所在命令行终端中输入 hello kafka ,然后按回车键,消息发送到 Topic 。此时在消息消费者所在的命令行中,可以看到 hello kafka 消息已经收到了。