首页 > 系统相关 >zookeeper及kafka在Linux下的安装与配置

zookeeper及kafka在Linux下的安装与配置

时间:2023-12-18 18:15:09浏览次数:38  
标签:-- zookeeper 端口 kafka listeners Linux INPUT

一、Zookeeper的下载、安装、配置
ZooKeeper服务器是用Java创建的,它需要在JVM上运行,所以需要使用JDK1.6及以上版本的支持。对于jdk的安装本文不做介绍。

1、zookeeper的下载:
因为apache-zookeeper-3.5.5的在安装完启动时可能会报,"错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain",所以建议下载安装apache-zookeeper-3.5.5-bin

①:到apache上的zookeeper网站:Apache ZooKeeper

②:选择Getting Started下的Download点击进入:

 

③选择Download下的Download:

 

④选择清华大学的站点地址:Index of /apache/zookeeper

 

⑤三者选择其中之一,然后进行下载:

 

 

2、zookeeper的安装:

①:将下载的zookeeper安装包上传到Linux中的/usr/local目录下

②:在/usr/local下新建一个software文件夹,专门用来存放安装的软件

③:解压 tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz

④:mv apache-zookeeper-3.5.5-bin software (将apache-zookeeper-3.5.5-bin移动到software文件夹下)

3、zookeeper的配置:

⑤:在/usr/local/software/apache-zookeeper-3.5.5-bin下创建data、logs文件夹

⑥:cd /usr/local/software/apache-zookeeper-3.5.5-bin/conf,然后cp zoo_sample.cfg zoo.cfg(复制创建一份新的zoo.cfg配置文件)

⑦:vim zoo.cfg将dataDir=/tmp/zookeeper  改为:dataDir=/usr/local/software/apache-zookeeper-3.5.5-bin/data 

4、启动:

在/usr/local/software/apache-zookeeper-3.5.5-bin下 bin/zkServer.sh start启动

5、停止:

在/usr/local/software/apache-zookeeper-3.5.5-bin下 bin/zkServer.sh stop 停止

二、Kafka的下载、安装、配置
1、kafka的下载:

①:进入Apache Kafka  ,选择Download

 

②:选择版本下载:

 

2、安装

①:将kafka_2.12-2.3.0.tgz上传到/usr/local下

②:解压 tar -zxvf kafka_2.12-2.3.0.tgz

③:mv kafka_2.12-2.3.0 software

3、配置

在/usr/local/software/kafka_2.12-2.3.0下 运行 vim config/server.properties(编辑server.properties文件)

注意:最好设置成Ip地址,而不是localhost,这样其他电脑也能连接,否则Java项目可能会报找不到kafka节点的错误!

①、listeners=PLAINTEXT://Linux的Ip:9092 
②、advertised.listeners=PLAINTEXT://Linux的Ip:9092 

 

kafka listeners 和 advertised.listeners 的区别及应用:kafka listeners 和 advertised.listeners 的区别及应用_PONY LEE的博客-CSDN博客_advertised.listeners kafka

在公司内网部署 kafka 集群只需要用到 listeners,内外网需要作区分时 才需要用到advertised.listeners。

listeners: 学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。 advertised.listeners:和 listener相比多了个advertised。Advertise的含义表示宣称的、公布的,就是组监听器是 Broker 用于对外发布的【外网】。

listeners=INSIDE://172.17.0.10:9092,OUTSIDE://<公网 ip>:端口
advertised.listeners=INSIDE://172.17.0.10:9092,OUTSIDE://<公网 ip>:端口
listener.security.protocol.map=INSIDE:SASL_PLAINTEXT,OUTSIDE:SASL_PLAINTEXT
inter.broker.listener.name=INSIDE
advertised_listeners 监听器会注册在 zookeeper 中;

当我们对 172.17.0.10:9092 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 INSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口;

同理,当我们对 <公网 ip>:端口 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 OUTSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口 172.17.0.10:9094;

总结:advertised_listeners 是对外暴露的服务端口,真正建立连接用的是 listeners。

4、启动

在/usr/local/software/kafka_2.12-2.3.0下 运行

bin/kafka-server-start.sh config/server.properties
kafka后台启动的命令:

bin/kafka-server-start.sh -daemon config/server.properties
5、停止

在/usr/local/software/kafka_2.12-2.3.0下 运行

bin/kafka-server-stop.sh config/server.properties
6、使用

①:创建一个名为“test”的Topic,只有一个分区和一个备份:(ip需要和config/server.properties的保持一致)

bin/kafka-topics.sh --create --zookeeper 192.168.1.200:2181 --topic test --partitions 1 --replication-factor 1
②、查看已创建的topic信息:(ip需要和config/server.properties的保持一致)

> bin/kafka-topics.sh --list --zookeeper 192.168.1.200:2181
③、开启生产者发送消息:(ip需要和config/server.properties的保持一致)

bin/kafka-console-producer.sh --broker-list 192.168.1.200:9092 --topic test
④:开启消费者消费消息:(ip需要和config/server.properties的保持一致)

bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 --topic test --from-beginning
三、Springboot整合Kafka
1、在pom.xml中加入kafka的依赖

<dependency>
   <groupId>org.springframework.kafka</groupId>
   <artifactId>spring-kafka</artifactId>
</dependency>
2、springboot启动的时候如果一直报

Connection to node -1 could not be established. Broker may not be available.
可能是zoopeeper和kafka在Linux上的端口没有开放

3、开放zoopeeper和kafka在Linux上的端口

一、CentOS 7快速开放端口:

CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:

开启端口
[root@centos7 ~]# firewall-cmd --zone=public --add-port=2181/tcp --permanent(开放zookeeper的端口)

[root@centos7 ~]# firewall-cmd --zone=public --add-port=9092/tcp --permanent(开放kafka的端口)

重启防火墙:

[root@centos7 ~]# firewall-cmd --reload

查询端口号2181、9092 是否开启:(yes:端口开启成功,no:端口开启失败)

[root@centos7 ~]# firewall-cmd --query-port=2181/tcp

[root@centos7 ~]# firewall-cmd --query-port=9092 /tcp

查询有哪些端口是开启的:

[root@centos7 ~]# firewall-cmd --list-port

命令含义:
--zone #作用域
--add-port=2181/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

二、CentOS6防火墙开放端口:

在我们使用CentOS系统的时候,CentOS防火墙有时是需要改变设置的。CentOS防火墙默认是打开的,设置CentOS防火墙开放端口方法如下:

打开iptables的配置文件:vi /etc/sysconfig/iptables

修改CentOS防火墙时注意:一定要给自己留好后路,留VNC一个管理端口和SSh的管理端口

下面是一个iptables的示例:

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

修改CentOS防火墙需要注意的是,你必须根据自己服务器的情况来修改这个文件。

举例来说,如果你不希望开放80端口提供web服务,那么应该相应的删除这一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

全部修改完之后重启iptables:service iptables restart

你可以验证一下是否规则都已经生效:iptables -L

这样,我们就完成了CentOS防火墙的设置修改。
————————————————
版权声明:本文为CSDN博主「西木Qi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mr_XiMu/article/details/102021121

标签:--,zookeeper,端口,kafka,listeners,Linux,INPUT
From: https://www.cnblogs.com/csjoz/p/17911841.html

相关文章

  • linux安装kafka教程
    一、安装kafka1、下载kafka1.到kafka的官网,去下载想用的kafka包:http://kafka.apache.org/downloads2.我这里下载的是:kafka_2.12-3.4.1.tgz3.将安装包传送到服务器并解压(默认这里解压了就是安装路径了,可以自己斟酌):比如我的是上传和解压到 /opt/kafka,如下图 tar-zxvfkafka......
  • Linux搭建FTP服务器
    一、概念简介vsftpd(verysecureFTPdaemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件,本次实验介绍如何在Linux上安装并配置vsftpd。FTP(FileTransferProtocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:主动模式:客户端向FTP服务器发送端口信息,由......
  • Linux开机启动自定义脚本
    方式一:chkconfig命令首先编写好自启的脚本/etc/init.d/test.sh#!/bin/sh#chkconfig:23451090#创建个文件touch/opt/script/1.txt再给脚本添加上可执行权限:chmod+xtest.sh将脚本添加到开机启动项chkconfig--addtest.sh将脚本设置为自启动chkconf......
  • mac安装php-kafka
    首先,安装文档在: 如何使用PHPSDK接入消息队列Kafka版并收发消息_云消息队列Kafka版(ApsaraMQfor Kafka)-阿里云帮助中心(aliyun.com)但是按照这个文档,存在一个问题,一直报错:1...2checkingforrdkafkasupport...yes,shared3checkingforlibrdkafka/rdkafka.h"i......
  • 面试官问我:线程锁导致的kafka客户端超时,如何解决?
    本文分享自华为云社区《线程锁导致的kafka客户端超时问题》,作者:张俭。问题背景有一个环境的kafkaclient发送数据有部分超时,拓扑图也非常简单定位历程我们先对客户端的环境及JVM情况进行了排查,从JVM所在的虚拟机到kafkaserver的网络正常,垃圾回收(GC)时间也在预期范围内,没有......
  • 为什么EmbeddedLinuxBeginnerSGuide的image中 uboot一定要放在fat32分区,不能跟preload
    按照按照  (https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide)制作了一个image,然后按照https://www.cnblogs.com/DoreenLiu/p/17903782.html将相关文件都打包到一个.img文件里面去。其实最开始研发给我的Makefile内容是这样(这个是RD用于制作LXD......
  • Linux下4种快速创建大文件的方法
    1.使用dd命令创建大文件dd命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。创建一个名为test.img的2GB大小的文本文件,执行以下操作:ddif=/dev/zeroof=test.imgbs=2Gcount=1其中根据需要来更改块大小和块数。例如,......
  • linux环境变量(转载)
    阅读目录一、Linux环境变量介绍1.1Linux环境变量介绍1.2Linux环境变量分类1.3Linux常用的环境变量二、Linux查看环境变量三、Linux添加环境变量3.1添加系统级环境变量(需root权限、针对所有用户、永久生效)3.2添加用户级环境变量3.3SSH/串口终端临时添加环境变量四、Lin......
  • Linux 安装 Harbor Docker镜像仓库&&远程访问
    Harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。下面介绍如何在Linux安装并且使用cpolar内网穿透工具实现远程访问Har......
  • linux 使用 mwget 实现多线程下载
    mwget和curl/multicurl一样,m就是multi多线程的意思。mwget是wget的升级版,支持多线程下载【使用方法】gitclonehttps://github.com/rayylee/mwget.gitcdmwgetyum-yinstallpkg-configyum-yinstalllibssl-devyum-yinstallintltool./configuremake&&makeins......