linux 源码搭建Kafka集群,100%有效

kafka源码编译安装 准备三台服务器 192.168.xxx.xxx 192.168.xxx.xxx 192.168.xxx.xxx 安装kafka前需先安装JDK和zookeeper如下步骤: JDK配置安装

官网地址(https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html)

linux 源码搭建Kafka集群,100%有效

下载文件到本地,通过远程工具上载文件到服务器自定义目录

解压文件到指定目录(所有节点机器都做,也可忽略后面做节点复制) tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local/ #解压文件到指定目录 mv jdk1.8.0_291/ java #修改文件名 cd java

在这里插入图片描述

配置环境变量 vi etc/profile 末尾添加如下内容: export JAVA_HOME=http://www.likecs.com/usr/local/java export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 使配置文件生效 source /etc/profile 检查验证 java -version

在这里插入图片描述

zookeeper 配置安装

官网下载地址(https://zookeeper.apache.org/releases.html)

下载源码包文件到本地通过远程连接工具上载文件到服务器

解压文件

推荐下载编译后的bin源码包

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /usr/local/ mv apache-zookeeper-3.7.0-bin/ zookeeper

在这里插入图片描述

创建文件目录用于存放数据 cd /usr/local/zookeeper mkdir data #存放数据 mkdir logs #存放日志文件

进入conf文件夹,将zoo_sample.cfg改为zoo.cfg

cd /usr/local/zookeeper/conf mv zoo_sample.cfg zoo.cfg

修改配置文件参数

vi zoo.cfg #The number of milliseconds of each tick tickTime=2000 #服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳。 #The number of ticks that the initial #synchronization phase can take initLimit=10 #配置 Zookeeper 接受客户端(此客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已超过initLimit个tickTime长度后 Zookeeper 服务器还没有收到客户端的返回信息,则表明客户端连接失败。总的时间长度就是 initLimit * tickTime 秒。 #The number of ticks that can pass between #sending a request and getting an acknowledgement syncLimit=5 #配置 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 syncLimit * tickTime 秒。 #the directory where the snapshot is stored. #do not use /tmp for storage, /tmp here is just #example sakes. dataDir=http://www.likecs.com/usr/local/zookeeper/data #Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 dataLogDir=http://www.likecs.com/usr/local/zookeeper/logs #dataLogDir:若没提供的话则用dataDir。zookeeper的持久化都存储在这两个目录里。dataLogDir里是放到的顺序日志(WAL)。而dataDir里放的是内存数据结构的snapshot,便于快速恢复。为了达到性能最大化,一般建议把dataDir和dataLogDir分到不同的磁盘上,以充分利用磁盘顺序写的特性。 #the port at which the clients will connect clientPort=2181 #Zookeeper服务器监听的端口,以接受客户端的访问请求。 #the maximum number of client connections. #increase this if you need to handle more clients #maxClientCnxns=60 #Be sure to read the maintenance section of the administrator guide before turning on autopurge. ##sc_maintenance #The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 Purge task interval in hours Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 Metrics Providers #https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true #zookeeper集群配置信息 server.1=192.168.xxx.xxx:2888:3888 ###注:192.168.xxx.xxx:2888:3888后面一定不要有空格,否则会报错 server.2=192.168.xxx.xxx:2888:3888 server.3=192.168.xxx.xxx:2888:3888 #server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,此端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。2888端口是zookeeper服务相互通信使用的,3888端口是zookeeper服务选举使用的

默认端口说明:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdpxx.html