(二十五)大数据实战——kafka集群及Kafka-Eagle控制台安装与部署

前言

本节内容我们主要介绍一下搭建kafka集群以及kafka集群的一个web客户端组件Kafka-Eagle的部署安装,使用的kafka版本是kafka_2.12-3.0.0。在搭建kafka集群之前,我们要预先搭建好zookeeper集群,这里作者默认zookeeper的集群环境已经搭建完成,可参考作者往期博客内容。新版本的kafka集群分为俩种搭建方式,一种依赖zookeeper,一种使用Kraft模式,本节内容我们主要介绍zookeeper模式的kafka集群搭建部署。

正文

①kafka高可用集群部署规划

kafka高可用集群部署规划
hadoop101hadoop102hadoop103
zookeeperzookeeperzookeeper
kafkakafkakafka
Kafka-Eagle

②上传kafka安装包到hadoop101服务器/opt/software目录

③解压kafka安装包到/opt/module目录

- 命令:tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module

④在/opt/module/kafka_2.12-3.0.0/config目录下修改kafka配置文件server.properties 

- server.properties 配置文件位置

- 配置brokerid

broker.id=0

- 配置kafka数据存储目录,这里存储到kafka安装目录/opt/module/kafka_2.12-3.0.0/data下

log.dirs=/opt/module/kafka_2.12-3.0.0/data

- 配置zookeeper访问路径

zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181/kafka

⑤分发kafka安装包到hadoop102和hadoop103服务器,并修改其brokerid配置

 - 分发kafka安装包

- 修改hadoop102的server.properties 配置文件的brokerid

- 修改hadoop103的server.properties 配置文件的brokerid

⑥配置kafka环境变量 

- 在hadoop101服务器/etc/profile.d/my_env.sh 文件中增加 kafka环境变量配置

- 分发环境变量配置到hadoop102和hadoop103服务器

- 使环境变量生效

⑦将kafak安装包授权给hadoop用户,使用root用户启动kafka可以跳过此步骤

- 命令:

sudo chown -R hadoop:hadoop /opt/module/kafka_2.12-3.0.0/

⑦使用hadoop用户启动zookeeper集群服务和kafak集群服务 

- 启动zookeeper集群

- 启动kafka集群

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

- 查看日志,验证kafka集群是否已经启动成功

⑧使用脚本启停kafka集群

 - mykafka.sh集群启停脚本

#! /bin/bash
case $1 in
"start"){for i in hadoop101 hadoop102 hadoop103doecho " --------启动 $i Kafka-------"ssh $i "/opt/module/kafka_2.12-3.0.0/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.12-3.0.0/config/server.properties"done
};;
"status"){for i in hadoop101 hadoop102 hadoop103doecho =============== $i ===============ssh $i jpsdone
};;
"stop"){for i in hadoop101 hadoop102 hadoop103doecho " --------停止 $i Kafka-------"ssh $i "/opt/module/kafka_2.12-3.0.0/bin/kafka-server-stop.sh "done
};;
esac

- 在kafka的bin目录下创建mykafka.sh启停脚本

- 测试脚本

 ⑨安装kafka客户端工具Kafka-Eagle监控

- 上传Kafka-Eagle安装包到hadoop101服务器

- 解压Kafka-Eagle安装包到/opt/module目录

- 进入Kafka-Eagle安装目录,修改system-config.properties配置文件

- 修改zookeeper连接地址

efak.zk.cluster.alias=cluster1
cluster1.zk.list=hadoop101:2181,hadoop102:2181,hadoop103:2181/kafka

- 修改kafka offset storage的存储目录

cluster1.efak.offset.storage=kafka

- 修改数据库连接配置

efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://hadoop101:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=root

- 添加Kafka-Eagle监控环境变量配置

- 修改kafka服务器启动参数

export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
export JMX_PORT="9999"

- 分发kafka-server-start.sh启动脚本

- 重启kafka

- 启动Kafka-Eagle

- 访问Kafka-Eagle

结语

至此,关于kafka集群及Kafka-Eagle控制台安装与部署到这里就结束了,我们下期见。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/128697.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

canvas基础笔记

一、简介 Canvas是HTML5中的一个元素,它提供了一个可以使用JavaScript绘制图形的区域。它提供了一个强大的绘图API,可以用于创建各种图形,包括线条、矩形、圆形、文本等 Canvas 是 HTML5 中的一个元素,用于绘制图形、动画和图像。…

el-tree 懒加载数据,展开的节点与查询条件联动

目录 效果描述实现原理步骤1:el-tree设置node-key步骤2:懒加载时对数据进行处理,给整个树形数据添加唯一值步骤3:(联动) 点击左侧树形结构,右侧对应查询框自动赋值步骤4:(联动) 右侧查询条件选择好后&#…

使用redis+lua通过原子减解决超卖问题【示例】

系列文章目录 一、SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】 二、SpringBoot连接Redis与Redisson【代码】 三、SpringBoot整合WebSocket【代码】 四、使用redislua通过原子减解决超卖问题【示例】 五、SpringBoot整合Elasticsearch【代码示例】 文章目录 系…

数据结构 每日一练:将带头结点的单链表就地逆置(视频讲解两种方法)

目录 方法一 算法视频分析 方法二 算法视频分析 Q:什么是“就地”捏? A:就是指辅助空间复杂度为O(1),通俗一点来说就是不需要再开辟一块空间来实现算法。 特别说明: 笔者第一次录制视频,言语有些不顺&…

软件测试/测试开发丨Web自动化 测试用例流程设计

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27173 一、测试用例通用结构回顾 1.1、现有测试用例存在的问题 可维护性差可读性差稳定性差 1.2、用例结构设计 测试用例的编排测试用例的项目结构 1…

设计模式之单列模式

单列模式是一种经典的设计模式,在校招中最乐意考的设计模式之一~ 设计模式就是软件开发中的棋谱,大佬们针对一些常见的场景,总结出来的代码的编写套路,按照套路来写,不说你写的多好,至少不会太差~ 在校招中…

GCP之Google Cloud Infrastructure

Google Cloud 的物理网络是如何连接的? Google Cloud 分为 regions,regions 又分为 zones。 region 是一个地理区域,其中一个 VM 到另一个 VM 的往返时间 (RTT) 通常小于 1毫秒;zone 是 region 中的部署区…

LeetCode(力扣)37. 解数独Python

LeetCode37. 解数独 题目链接代码 题目链接 https://leetcode.cn/problems/sudoku-solver/description/ 代码 class Solution:def solveSudoku(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."…

dnmp运行时404报错

dnmp运行时404报错 问题截图: dnmp简介 M1芯片(Arm CPU) 环境中搭建PHPNGINXMYSQL的利器,docker容器管理当前使用的软件,可以简单安装软件和扩展。 localhost.conf 原始文件如下: server {listen 8…

MySQL 锁

一、介绍 1.1 锁的介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必…

Spring修炼之路--基础知识

一、核心概念 1.1软件模块化 软件模块化是一种软件开发的设计模式,它将一个大型的软件系统划分成多个独立的模块,每个模块都有自己的功能和接口,并且能够与其他模块独立地工作1. 软件模块化设计可以使软件不至于随着逐渐变大而变得不可控&am…

大数据-玩转数据-Flink 容错机制

一、概述 在分布式架构中,当某个节点出现故障,其他节点基本不受影响。在 Flink 中,有一套完整的容错机制,最重要就是检查点(checkpoint)。 二、检查点(Checkpoint) 在流处理中&am…

初识docker

目录 docker解决的问题1. 开发、测试和运维人员之间的矛盾2. 更轻量的虚拟化,节省了虚拟机的性能损耗 虚拟机与容器的区别1. 虚拟机2. 容器 Docker 系统架构 docker解决的问题 1. 开发、测试和运维人员之间的矛盾 “程序在我这跑得好好的,在你那怎么就…

Qt的窗口系统

代码仓库以及参考文件见文章底部 坐标体系 要想学好GUI,界面的坐标系首先要搞清楚 在Qt编程中,以左上角为原点,X向右增加,Y向下增加。 对于所有嵌套的窗口,其坐标是相对于父窗口来说的。 QWidget 所有窗口以及窗口控件都是从QWidget直接或者间接派生出来的。 对象模…

手写Spring:第5章-注入属性和依赖对象

文章目录 一、目标:注入属性和依赖对象二、设计:注入属性和依赖对象三、实现:注入属性和依赖对象3.0 引入依赖3.1 工程结构3.2 注入属性和依赖对象类图3.3 定义属性值和属性集合3.3.1 定义属性值3.3.2 定义属性集合 3.4 Bean定义补全3.5 Bean…

21.添加websocket模块

这里默认读者了解websocket协议,若是还不了解可以看下这篇文章wesocket协议。 websocket主要有三个步骤,1通过HTTP进行握手连接,2进行双向通信,3.协商断开连接 第一步的握手连接需要HTTP,所以还需要使用到上一节讲解…

Python实现猎人猎物优化算法(HPO)优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

OpenCV(三十三):计算轮廓面积与轮廓长度

1.介绍轮廓面积与轮廓长度 轮廓面积(Contour Area)是指轮廓所包围的区域的总面积。通常情况下,轮廓面积的单位是像素的平方。 轮廓长度(Contour Length)又称周长(Perimeter),表示轮廓…

Unity 从0开始编写一个技能编辑器_01_分析需求

入职以来一直很想实现一个技能编辑器,在积累了一些经验以后,决定利用ScriptableObject开发一个,在此记录 1.简单的需求分析 在游戏开发中,技能系统是一个至关重要的组成部分。技能决定了游戏角色可以执行的各种动作,例…

代码随想录算法训练营第十八天|513. 找树左下角的值|112. 路径总和|106. 从中序与后序遍历序列构造二叉树

513. 找树左下角的值 题目:给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 思路一:层序遍历,最后一层的第一个元素,即…