Centos7下Kafka安装与配置

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 教程

Centos7下Hadoop完全分布式集群Kafka安装


电脑系统:macOS 10.15.4

虚拟机软件:Parallels Desktop14

Hadoop各节点节点操作系统:CentOS 7

JDK版本:jdk1.8.0_162

Kafka版本:kafka_2.11-2.1.1

Kafka的下载源地址:


https://archive.apache.org/dist/kafka/2.1.1/

想详细了解kafka原理的点击这里!


第一步:安装软件


(1)上传文件

将本机的安装包上传到虚拟机node1,上传方式:

scp 本机的文件绝对路径 caizhengjie@10.211.55.59:/opt/Hadoop


(2)解压文件

上传成功之后需要对文件赋予权限

chmod u+x kafka_2.11-2.1.1.tar.gz

解压文件:

tar -zxvf kafka_2.11-2.1.1.tar.gz

创建软链接:

ln -s kafka_2.11-2.1.1 kafka


第二步:配置环境变量


声明:kafka不同的版本对应的配置文件可能不同,命令也不一样,所以在参考之前需要核对好自己的版本号,以免产生误会。

vim ~/.bashrc

然后添加以下内容,注意三台虚拟机都需要配置环境变量

export KAFKA_HOME=/opt/Hadoop/kafka
export PATH=${KAFKA_HOME}/bin:$PATH

最后使之生效

source ~/.bashrc


第三步:修改配置文件


kafka中修改配置文件主要是/opt/Hadoop/kafka/config中的server.properties


第一个地方:

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=1

在node1中修改编号为1,node2中修改编号为2,node3中修改编号为3,以此类推

第二个地方:

# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://node1:9092
port=9092

这里根据自己的所在的主机名修改


第三个地方:


# Hostname and port the broker will advertise to producers and consumers. If not set, 
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://node1:9092

这里根据自己的所在的主机名修改

第四个地方:

# A comma separated list of directories under which to store log files
log.dirs=/opt/Hadoop/kafka/kafka-logs

这里需要在/opt/Hadoop/kafka/目录下创建一个kafka-logs文件夹

mkdir kafka-logs

第五个地方:

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=node1:2181,node2:2181,node3:2181

zookeeper这里需要按照这里的格式写


第四步:分发配置文件


将node1的kafka_2.11-2.1.1和kafka_2.11-2.1.1.tar.gz文件分发到node2和node3上:

scp -r kafka_2.11-2.1.1 kafka_2.11-2.1.1.tar.gz caizhengjie@node2:/opt/Hadoop/
scp -r kafka_2.11-2.1.1 kafka_2.11-2.1.1.tar.gz caizhengjie@node3:/opt/Hadoop/

分别在node2和node3上创建软连接

ln -s kafka_2.11-2.1.1.tar.gz kafka

上传完之后要对node2,node3进行配置文件的修改,参考第三步


第五步:启动与检测


kafka的启动方式,需要进入到bin的上一级目录,也就是/opt/Hadoop/kafka

bin/kafka-server-start.sh -daemon config/server.properties

通过输入jps来查看进程1.png2.png3.png

出现kafka则表示安装成功


第六步:对Kafka进行消息测试


在测试之前,需要配置一下producer.properties文件,意思是配置生产者。

我在每一台机的/opt/Hadoop/kafka/config/producer.properties文件中修改

# list of brokers used for bootstrapping knowledge about the rest of the cluster
# format: host1:port1,host2:port2 ...
bootstrap.servers=node1:9092,node2:9092,node3:9092

(1)启动服务

首先要启动zookeeper,再启动kafka,三台要同时启动

启动zookeeper:

zkServer.sh start

启动kafka

在前台启动kafka,注意查看打印在桌面的日志,有无报错信息

bin/kafka-server-start.sh config/server.properties

如果没有报错信息,启动正常,那么就可以在后台启动了

bin/kafka-server-start.sh -daemon config/server.properties


(2)创建topic

创建一个分区和一个副本的“test”的topic

bin/kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node3:2181 --replication-factor 1 --partitions 1 --topic te

这里有的朋友会问到,topic在哪里可以看到?那么我这里解释一下

首先进入到/opt/Hadoop/zookeeper/bin目录下

cd /opt/Hadoop/zookeeper/bin

然后执行zkCli.sh服务,会看到下图的页面

image.png

然后输入ls /,则下面就看到brokers,输入ls /brokers,则会看到

[zk: localhost:2181(CONNECTED) 2] ls /brokers
[ids, topics, seqid]

那么刚才所创建的test就在topics下,再次输入ls /brokers/topics,就会看到test

[zk: localhost:2181(CONNECTED) 3] ls /brokers/topics
[protest, test, __consumer_offsets]

输入quit则退出

还有一种方法,可以通过下面的命令查看

bin/kafka-topics.sh --list --zookeeper localhost:2181
bin/kafka-topics.sh --list --zookeeper node1:2181
__consumer_offsets
protest
test


(3)生产者发送消息

Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。运行生产者,然后在控制台中键入一些消息以发送到服务器。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test
>java
>python
>php
>hadoop
>linux
>


(4)消费者接收消息

Kafka还有一个命令行使用者,它将消息转储到标准输出。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

在node2上操作:

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --from-beginning --topic test
java
python
php
hadoop
linux


相关文章
|
20天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
95 64
|
21天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
104 61
|
14天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
37 1
Linux系统之Centos7安装cockpit图形管理界面
|
20天前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
67 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
14 2
|
5天前
|
Linux 知识图谱
Centos7安装killall,fuser, killall,pstree和pstree.x11
通过上述步骤,您已在CentOS 7系统中成功部署了killall、fuser、pstree以及pstree.x11,为高效管理系统进程打下了坚实基础。更多关于服务器管理与优化的知识,获取全面技术支持与解决方案。
7 1
|
5天前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
11 1
|
15天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
57 1
|
17天前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
132 3
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
149 2