kafka:linux 安装 kafka集群
kafka运行依赖于 jdk、zookeeper,kafka可视化工具选择kafka-eagle。所以要装的组件有:jdk、zookeeper、kafka、kafka-eagle
一、安装jdk
下载linux版本的jdk包,比如:jdk-8u192-linux-x64.tar.gz。
将其复制到 /opt 目录下并解压:tar -zxvf jdk-8u192-linux-x64.tar.gz

添加环境变量:vi /etc/profile 然后在末尾插入以下内容
export JAVA_HOME=/opt/jdk1.8.0_192
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
再运行 source /etc/profile 重新加载环境变量即可,可用java -version测试jdk是否安装成功

二、安装运行zookeeper
1、下载zookeeper,下载地址:Apache ZooKeeper


这里为了测试对接方的kafka,直接选择下载旧版本的apache-zookeeper-3.5.8-bin.tar.gz,并将之复制到/opt/zookeeper目录下。
2、在/opt/zookeeper目录下运行以下命令启动zookeeper:
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
cd apache-zookeeper-3.5.8-bin
cp conf/zoo_sample.cfg conf/zoo.cfg
sh /opt/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start
3、检查是否启动,使用 jps -l 可以看到zookeeper启动

4、若启动失败则可以看 /opt/zookeeper/apache-zookeeper-3.5.8-bin/logs下的日志


这里报8080端口被占用,就改下配置,配置文件为/opt/zookeeper/apache-zookeeper-3.5.8-bin/conf/zoo.cfg,再里面添加一行:admin.serverPort=8081,如下图所示:

再次启动:sh /opt/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start,用jsp -l可以看到启动成功。

若需要关闭zookeeper,运行命令:sh /opt/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh stop
三、安装运行kafka
1、下载kafka,地址:Apache Kafka

将该文件复制到 /opt/kafka 文件夹中
2、修改配置文件,在/opt/kafka目录下运行以下命令:
tar -vxzf kafka_2.11-2.4.0.tgz
vi /opt/kafka/kafka_2.11-2.4.0/config/server.properties
修改server.properties如下属性:
broker.id=0
listeners=PLAINTEXT://192.168.189.128:9092
zookeeper.connect=192.168.189.128:2181
log.dirs=/opt/kafka/kafka_2.11-2.4.0/tmp/kafka-logs
3、启动kafka,具体命令如下:
启动:sh /opt/kafka/kafka_2.11-2.4.0/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-2.4.0/config/server.properties
查看日志:cat /opt/kafka/kafka_2.11-2.4.0/logs/server.log
停止:sh /opt/kafka/kafka_2.11-2.4.0/bin/kafka-server-stop.sh

可以看到kafka启动成功
4、在当前机器/opt/kafka目录类似上述操作,再复制或解压出两个kafka包,修改配置,然后启动即可。相关命令如下:
sh /opt/kafka/kafka_2.11-2.4.0/bin/kafka-server-stop.sh
rm -fr /opt/kafka/kafka_2.11-2.4.0/logs
rm -fr /opt/kafka/kafka_2.11-2.4.0/tmp
cp -rfp /opt/kafka/kafka_2.11-2.4.0 /opt/kafka/kafka_2.11-2.4.0_1
vi /opt/kafka/kafka_2.11-2.4.0_1/config/server.properties
sh /opt/kafka/kafka_2.11-2.4.0_1/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-2.4.0_1/config/server.properties
cp -rfp /opt/kafka/kafka_2.11-2.4.0 /opt/kafka/kafka_2.11-2.4.0_2
vi /opt/kafka/kafka_2.11-2.4.0_2/config/server.properties
sh /opt/kafka/kafka_2.11-2.4.0_2/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-2.4.0_2/config/server.properties

可以看到 zookeeper和3个kafka都启动了。
另外,可用zookeeper客户端查看kafka节点:
sh /opt/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkCli.sh
ls /brokers/ids

注意,关闭kafka集群,只要运行其中一个kafka的bin目录下的kafka-server-stop.sh即可,但启动,需要将这些kafka的bin目录下的kafka-server-start.sh都运行。
以上这些步骤可以说kafka已经安装完毕了,就可以用各语言的API去连接kafka了。以下步骤安装kafka可视化工具:kafka-eagle。
四、安装运行kafka-eagle
下载kafka-eagle,下载地址:https://www.kafka-eagle.org/

将下载的文件(kafka-eagle-bin-2.1.0.tar.gz)放到 /opt/kafka-eagle目录下,并解压
tar -vxzf /opt/kafka-eagle/kafka-eagle-bin-2.1.0.tar.gz -C /opt/kafka-eagle
tar -vxzf /opt/kafka-eagle/kafka-eagle-bin-2.1.0/efak-web-2.1.0-bin.tar.gz -C /opt/kafka-eagle/kafka-eagle-bin-2.1.0
vi /opt/kafka-eagle/kafka-eagle-bin-2.1.0/efak-web-2.1.0/conf/system-config.properties
编辑内容如下:
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.189.128:2181
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=root
可以看到需要连接mysql,我这里是直接用docker安装运行mysql的,具体命令如下:
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
2、设置环境变量:
vi /etc/profile
文件里添加如下变量:
export KE_HOME=/opt/kafka-eagle/kafka-eagle-bin-2.1.0/efak-web-2.1.0
KE_PATH=$PATH:$KE_HOME/bin
export KE_PATH
更新环境变量:
source /etc/profile
3、启动kafka-eagle:
sh /opt/kafka-eagle/kafka-eagle-bin-2.1.0/efak-web-2.1.0/bin/ke.sh start

启动成功,再访问网址:192.168.189.128:8048,账号:admin,密码:123456

可以看到页面能成功访问

kafka集群各节点的brokerid、ip和port都可以看到。
若要关闭efak,则运行命令:sh/opt/kafka-eagle/kafka-eagle-bin-2.1.0/efak-web-2.1.0/bin/ke.sh stop
相关文章:

kafka:linux 安装 kafka集群
kafka运行依赖于 jdk、zookeeper,kafka可视化工具选择kafka-eagle。所以要装的组件有:jdk、zookeeper、kafka、kafka-eagle一、安装jdk下载linux版本的jdk包,比如:jdk-8u192-linux-x64.tar.gz。将其复制到 /opt 目录下并解压&…...
springboot实现Hessian协议的RPC服务
背景 这段时间在公司接手了一个新项目,看到一段代码非常奇怪的,研究了好久。内容大概是这样 public void getUser (int id) {userService.getById(id); }当我点击这个方法进去的时候,我发现这个UserService类居然是导入jar包的一个接口&…...

2-6 SpringCloud快速开发入门: Eureka 服务注册中心发现与消费服务
接上一章节向Eureka 服务注册中心注册服务,这里讲讲Eureka 服务注册中心发现与消费服务 Eureka 服务注册中心发现与消费服务 我们已经搭建一个服务注册中心,同时也向这个服务注册中心注册了服务,接下来我们就可以发现和消费服务了࿰…...

Java-Web之s2-001与CommonsCollections
本文源自我个人入坑Java-Web安全的一点小经验,献给那些看得懂java代码但不知道从哪里入手代审的师傅们:) Struts2之s2-001 环境配置 说说环境配置的问题,大多数人对漏洞复现的恐惧感还是来自于环境的配置,也许配了大…...

【JavaSE】数组的定义和使用(下)
数组的定义和使用(下)4. 数组练习4.1 模拟实现toString4.2 数组拷贝4.3 比较两个数组是否相同4.4 填充数组4.3 求数组中元素的平均值4.4 查找数组中指定元素(顺序查找)4.5 查找数组中指定元素(二分查找)4.6…...
Oracle 实现对全局错误语句的审计监控 ORA- alert
--将所有数据库ora-错误写入表create table error_tab (username varchar2(4000), d_current_nr_error varchar2(4000), ora_server_error_msg varchar2(4000), full_text varchar2(4000),errdate date);create or replace trigger error_triggerafter servererror on database…...

React解决样式冲突问题的方法
React解决样式冲突问题的方法 前言: 1、React最终编译打包后都在一个html页面中,如果在两个组件中取一样类名分别引用在自身,那么后者会覆盖前者。 2、默认情况下,只要导入了组件,不管组件有没有显示在页面中&#x…...
Go项目(用户操作微服务)
简介 用户留言、收藏、修改收货地址等,统一放在用户操作微服务这里按照业务类型划分微服务表设计,三张表// 用户收藏 type UserFav struct {BaseModel// 联合索引 idx_user_goods,且唯一User int32 gorm:"type:int;index:idx_user_goo…...

Spring Boot统一功能处理
目录 一、统一用户登录权限验证 1.1 自定义拦截器 1.2 将自定义拦截器加入到系统配置 1.3 统一访问前缀 二、统一异常处理 三、统一数据格式返回 一、统一用户登录权限验证 1.1 自定义拦截器 拦截器是一个普通的类,需要实现HandlerInterceptor接口并重写pre…...
ETCD多次出现CONTEXT DEADLINE EXCEEDED
roothqa-master-01:~# etcdctl --endpoints$ETCD_ENDPOINTS member list --write-outtable {“level”:“warn”,“ts”:“2020-03-23T14:19:45.0330800”,“caller”:“clientv3/retry_interceptor.go:61”,“msg”:“retrying of unary invoker failed”,“target”:“endpoi…...

git 提交 多人开发避免冲突
代码正常提交 git add . git commit -m ‘备注信息’ git status 查看本地提交状态 git pull 拉取代码 git push origin master 指定远程仓库名和分支名 ‘’ 如果多人开发 A和B 提交避免冲突 B拉取代码修改内容直接提交后 A也修改了内容在git add / git commit / git pull / g…...

求职复盘:干了四年外包出来,面试5次全挂
我的情况 大概介绍一下个人情况,男,毕业于普通二本院校非计算机专业,18年跨专业入行测试,第一份工作在湖南某软件公司,做了接近4年的外包测试工程师,今年年初,感觉自己不能够再这样下去了&…...
AXI总线核心解读---基于官方文档
AXI总线 何处使用AXI ZYNQ异构芯片,内部总线使用的AXI总线纯FPGA的IP接口也要用高速接口,DDR(AXI、传统)等模块都有涉及到 什么是AXI总线 AXI的三种形式: AXI-FULL:高性能的存储器映射需求—可以256个以内发送 存储器…...

【Linux修炼】15.进程间通信
每一个不曾起舞的日子,都是对生命的辜负。 进程间通信进程间通信一.理解进程间通信1.1 什么是通信1.2 为什么要有通信1.3 如何进行进程间通信二.管道2.1 匿名管道2.2 匿名管道编码部分2.3 管道的特点2.4 如何理解命令行中的管道2.5 进程控制多个子进程三.命名管道3.…...

每天一道大厂SQL题【Day15】微众银行真题实战(五)
每天一道大厂SQL题【Day15】微众银行真题实战(五) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…...
如何优化查询大数据量的表
给你100万条数据的一张表,你将如何查询优化?1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多…...

卷麻了,00后Jmeter用的比我还熟练,简直没脸见人......
经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对测试工具的使用感到困扰?前言性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性…...

力扣-树节点
大家好,我是空空star,本篇带大家了解一道中等的力扣sql练习题。 文章目录前言一、题目:608. 树节点二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …...

MySQL8启动错误“Neither found #innodb_redo subdirectory, nor ib_logfile* files”
今天做MySQL备份文件回复测试,用来检验MySQL备份文件可用性。 MySQL版本8.0.32 备份文件为腾讯云MySQL实例,版本8.0 使用xtrabackup恢复备份。执行过程顺利,启动MySQL时发生错误。提示如下: 注意,这里使用了systemctl stop mysql。虽然启动失败了,但是如果不执行这条…...
JVM系列——详细说明Volatile,原子性/可见性,先行发生原则
上篇我们讨论了JMM中的工作内存和主内存、内存直接的交互指令,以及指令之间的顺序规则。 本篇将会以上篇为基础,详细介绍并发编程中的三个重要概念/工具:Volatile、原子性/可见性和先行发生(happens-before)原则。 volatile型变量…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...