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型变量…...

ArcGIS:栅格计算器的运算符和函数详解
01 栅格计算器在哪?02 运算符说明栅格计算器的表达式书写与Python语法一致(由于其为解释型语言并且语言简洁优美,因此简单上手),这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像…...

spring的beanfactory与applicationContext的区别以及继承关系
applicationContext继承关系 首先可以看一张图 ListableBeanFactory 可列举的bean工厂 hierarchical 分层bean工厂 messageSource 国际化信息 //国际化(internationalization)是设计和…...

分享一个 hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题
最近在针对某系统进行性能优化时,发现了一个hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题,该问题具有普适性,故特地拿出来跟大家分享下。 1 问题描述 在微服务中,我们普遍会使用各种数据库连接池技术以加快…...

MySQL 行锁
行锁 : 对表中行记录的锁 MySQL 的行锁 : 由各个引擎自己实现MyISAM 不支持行锁InnoDB 支持行锁 两阶段锁协议 : 行锁是在需要时才加上,要等到事务结束才释放 例子 : id 是表 t 的主键的 B 的 update 会阻塞,直到 A 执行 commit 后,B 才能…...

成为AI架构师的三大能力
AI架构师的定义 “AI 架构师”是以深度学习为代表的第三次AI热潮所催生的新型复合型人才,它的产生最本质的驱动因素是AI产业化落地应用的蓬勃发展对人才的需求,深度学习突出的工程属性也特别需要复合型人才来驾驭。 从字面来看,AI架构师的“…...

博客系统 实现 (前端 + 后端 )代码
文章目录博客系统前端代码 :1. add.html2. blog_detail.html3. blog_edit.html4. blog_list.html5. login.htmlcss 文件1. blog_detail.css2. blog_edit.css3. blog_list.css4. common.css5. login.css6. 分页器使用的 css后端代码1.config 包1.1 AppConfig类1.2 Lo…...

C语言:如何在cmd命令窗口上玩贪吃蛇游戏
最近在重新学习C语言知识,还别说,在这个过程中,我还真的学到了过去很多没有学习到C语言知识,于是就做了这个游戏–贪吃蛇. 运行结果如下: C语言:如何在cmd命令窗口上玩贪吃蛇游戏 文章目录 1. 实现原理2. 实现过程3. 参考代码1. 实现原理 其实,就是利用了人的视觉错觉来…...

Flutter-自定义图标
虽然Flutter有许多内置的icon图标,但是有些特殊功能的话,需要自定义图标或者需要在iconfont 阿里巴巴的图标库里找对应合适的图标。 第一步:在iconfont 阿里巴巴里搜索想要的图标并加入到购物车,点击下载代码后,会生成…...

教学场景应用视频试看预览功能
html5播放器视频预览功能效果 - 视频预览代码示例预播放一小段时间的视频内容,比如3分钟,然后引导用户付费观看或注册会员观看完整视频。原理:视频播放结束,执行s2j_onPlayOver()函数,显示提示信息或对话框,…...

关于进程与进程调度
目录什么是进程进程管理进程的结构体(PCB)里的属性并行与并发什么是进程 一个运行起来的程序就是进程. 比如文件名是以 exe 结尾的就是一可执行文件(程序) 双击QQ.exe文件, 这个程序就跑起来了, 它在系统中形成了一个进程, 那我们怎么看到进程呢? 可以打开任务管理器, 点开进…...