Hadoop生态圈框架部署(五)- Zookeeper完全分布式部署
文章目录
- 前言
- 一、Zookeeper完全分布式部署(手动部署)
- 1. 下载Zookeeper
- 2. 上传安装包
- 2. 解压zookeeper安装包
- 3. 配置zookeeper配置文件
- 3.1 创建 zoo.cfg 配置文件
- 3.2 修改 zoo.cfg 配置文件
- 3.3 创建数据持久化目录并创建myid文件
- 4. 虚拟机hadoop2安装并配置Zookeeper
- 5. 虚拟机hadoop3安装并配置Zookeeper
- 6. 配置Zookeeper系统环境变量
- 4.1 配置虚拟机hadoop1的Zookeeper环境变量
- 4.2 配置虚拟机hadoop2的Zookeeper环境变量
- 4.3 配置虚拟机hadoop3的Zookeeper环境变量
- 5. 启动Zookeeper集群
- 6. 查看Zookeeper集群状态
- 二、使用shell脚本自动部署Zookeeper完全分布式(选看)
- 1. 下载Zookeeper
- 2. 上传安装包
- 3. 使用shell脚本自动部署Zookeeper完全分布式
- 3.1 创建 hadoop1_zookeeper_install_config.sh 脚本文件并添加脚本内容
- 3.2 添加可执行权限
- 3.3 执行脚本
- 4. 加载环境变量
- 5. 启动Zookeeper集群
- 6. 查看Zookeeper集群状态
前言
- 介绍在虚拟机hadoop1、hadoop2和hadoop3部署完全分布式Zookeeper
- 配置zookeeper配置文件
- 配置zookeeper环境变量
- 启动zookeeper及查看zookeeper集群状态
- 提供shell脚本自动化安装zookeeper完全分布式
一、Zookeeper完全分布式部署(手动部署)
1. 下载Zookeeper
点击下载zookeeper3.7.0安装包:https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
2. 上传安装包
通过拖移的方式将下载的zookeeper安装包apache-zookeeper-3.7.0-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

2. 解压zookeeper安装包
在虚拟机hadoop1上传完成后将zookeeper安装包通过解压方式安装至/export/servers目录。
tar -zxvf /export/software/apache-zookeeper-3.7.0-bin.tar.gz -C /export/servers/

重命名
在虚拟机hadoop1把解压后的安装目录apache-zookeeper-3.7.0-bin重命名为zookeeper-3.7.0,重命名是为了简化路径,其次是为了标准化命名。
mv /export/servers/apache-zookeeper-3.7.0-bin /export/servers/zookeeper-3.7.0

3. 配置zookeeper配置文件
3.1 创建 zoo.cfg 配置文件
在虚拟机hadoop1通过复制Zookeeper的模板配置文件zoo_sample.cfg创建配置文件zoo.cfg。
cp /export/servers/zookeeper-3.7.0/conf/zoo_sample.cfg /export/servers/zookeeper-3.7.0/conf/zoo.cfg

3.2 修改 zoo.cfg 配置文件
在虚拟机hadoop1修改 zoo.cfg 配置文件,执行如下命令修改和添加配置文件内容。
cat >/export/servers/zookeeper-3.7.0/conf/zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/data/zookeeper/zkdata
clientPort=2181server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
EOF

3.3 创建数据持久化目录并创建myid文件
在虚拟机hadoop1创建数据持久化目录并创建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 1 > /export/data/zookeeper/zkdata/myid

在虚拟机hadoop2创建数据持久化目录并创建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 2 > /export/data/zookeeper/zkdata/myid

在虚拟机hadoop3创建数据持久化目录并创建myid文件。
mkdir -p /export/data/zookeeper/zkdata
echo 3 > /export/data/zookeeper/zkdata/myid

4. 虚拟机hadoop2安装并配置Zookeeper
在虚拟机hadoop1使用scp命令把虚拟机hadoop1的zookeeper的安装目录复制到虚拟机hadoop2的相同目录下,就相当于在hadoop2安装并配置了zookeeper。
scp -r /export/servers/zookeeper-3.7.0/ hadoop2:/export/servers/

5. 虚拟机hadoop3安装并配置Zookeeper
在虚拟机hadoop1使用scp命令把虚拟机hadoop1的zookeeper的安装目录复制到虚拟机hadoop3的相同目录下,就相当于在hadoop3安装并配置了zookeeper。
scp -r /export/servers/zookeeper-3.7.0/ hadoop3:/export/servers/

6. 配置Zookeeper系统环境变量
4.1 配置虚拟机hadoop1的Zookeeper环境变量
在虚拟机hadoop1使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。
source /etc/profile

4.2 配置虚拟机hadoop2的Zookeeper环境变量
在虚拟机hadoop2使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。
source /etc/profile

4.3 配置虚拟机hadoop3的Zookeeper环境变量
在虚拟机hadoop3使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。
echo >> /etc/profile
echo 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profile
echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile
配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。
source /etc/profile

5. 启动Zookeeper集群
在虚拟机hadoop1执行如下命令启动zookeeper。
zkServer.sh start

在虚拟机hadoop2执行如下命令启动zookeeper。
zkServer.sh start

在虚拟机hadoop3执行如下命令启动zookeeper。
zkServer.sh start

6. 查看Zookeeper集群状态
在虚拟机hadoop1执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

在虚拟机hadoop2执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

在虚拟机hadoop3执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

如果集群启动正常如上图所示,会有一个领导者leader,两个跟随者follower。
若要停止Zookeeper集群运行,依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令停止Zookeeper服务。
zkServer.sh stop
二、使用shell脚本自动部署Zookeeper完全分布式(选看)
1. 下载Zookeeper
点击下载zookeeper3.7.0安装包:https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
2. 上传安装包
通过拖移的方式将下载的zookeeper安装包apache-zookeeper-3.7.0-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

3. 使用shell脚本自动部署Zookeeper完全分布式
3.1 创建 hadoop1_zookeeper_install_config.sh 脚本文件并添加脚本内容
在虚拟机hadoop1上创建hadoop1_zookeeper_install_config脚本文件
touch /export/shell/hadoop1_zookeeper_install_config.sh
添加如下内容:
#!/bin/bash# 定义常量
ZK_VER="3.7.0"
ZK_BIN_TAR="apache-zookeeper-${ZK_VER}-bin.tar.gz"
ZK_DATA_DIR="/export/data/zookeeper/zkdata"
DATA_DIR="/export/data"
SOFTWARE_DIR="/export/software"
SERVERS_DIR="/export/servers"# 如果数据持久化目录存在则删除
if [ -d "${ZK_DATA_DIR}" ]; thenecho "删除 Hadoop1 的数据持久化目录 ${ZK_DATA_DIR}..."rm -rf ${ZK_DATA_DIR}
fissh root@hadoop2 \
"
if [ -d \"${ZK_DATA_DIR}\" ]; thenecho \"删除 Hadoop2 的数据持久化目录 ${ZK_DATA_DIR}...\"rm -rf ${ZK_DATA_DIR}
fi
exit
"ssh root@hadoop3 \
"
if [ -d \"${ZK_DATA_DIR}\" ]; thenecho \"删除 Hadoop3 的数据持久化目录 ${ZK_DATA_DIR}...\"rm -rf ${ZK_DATA_DIR}
fi
exit
"# 检查zookeeper是否已解压
if [ -d "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin" ]; thenecho "zookeeper安装程序已存在,正在删除原安装程序目录..."rm -rf "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin"
fi
if [ -d "${SERVERS_DIR}/zookeeper-${ZK_VER}" ]; thenecho "zookeeper安装程序已存在,正在删除原安装程序目录..."rm -rf "${SERVERS_DIR}/zookeeper-${ZK_VER}"
fi# 检查zookeeper安装包是否存在
if [ -f ${SOFTWARE_DIR}/${ZK_BIN_TAR} ]; thenecho "zookeeper安装包存在,正在解压安装包..."# 解压zookeeper安装包tar -zxvf ${SOFTWARE_DIR}/${ZK_BIN_TAR} -C ${SERVERS_DIR}echo "解压 ${SOFTWARE_DIR}/${ZK_BIN_TAR} 到 ${SERVERS_DIR} 目录成功"
elseecho "zookeeper安装包不存在,请先上传安装包到 ${SOFTWARE_DIR} 目录"exit 1
fi# 重命名
mv ${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin ${SERVERS_DIR}/zookeeper-${ZK_VER}
if [ $? -eq 0 ]; thenecho "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin 重命名为 ${SERVERS_DIR}/zookeeper-${ZK_VER} 成功"
elseecho "${SERVERS_DIR}/apache-zookeeper-${ZK_VER}-bin 重命名为 ${SERVERS_DIR}/zookeeper-${ZK_VER}失败,请检查"exit 1
fi# 创建zoo.cfg配置文件
cp ${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo_sample.cfg ${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg
if [ $? -eq 0 ]; thenecho "ZooKeeper 配置文件 zoo.cfg 创建成功"
elseecho "ZooKeeper 配置文件 zoo.cfg 创建失败,请检查"exit 1
fi# 修改zoo.cfg配置文件内容
cat >${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/data/zookeeper/zkdata
clientPort=2181server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
EOF
echo "${SERVERS_DIR}/zookeeper-${ZK_VER}/conf/zoo.cfg 配置文件修改成功"# 创建数据持久化目录并创建myid文件
mkdir -p /export/data/zookeeper/zkdata
echo 1 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop1 创建数据持久化目录并创建 myid 文件成功'
elseecho 'Hadoop1 创建数据持久化目录并创建 myid 文件失败,请检查'exit 1
fissh root@hadoop2 \
"
mkdir -p /export/data/zookeeper/zkdata
echo 2 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop2 创建数据持久化目录并创建 myid 文件成功'
elseecho 'Hadoop2 创建数据持久化目录并创建 myid 文件失败,请检查'
fi
exit
"ssh root@hadoop3 \
"
mkdir -p /export/data/zookeeper/zkdata
echo 3 > /export/data/zookeeper/zkdata/myid
if [ $? -eq 0 ]; thenecho 'Hadoop3 创建数据持久化目录并创建 myid 文件成功'
elseecho 'Hadoop3 创建数据持久化目录并创建 myid 文件失败,请检查'
fi
exit
"# 配置ZooKeeper系统环境变量
if [ -n "$ZK_HOME" ]; thenecho "Hadoop1 ZooKeeper 环境变量已配置:$ZK_HOME"
elseecho >> /etc/profileecho 'export ZK_HOME=/export/servers/zookeeper-3.7.0' >> /etc/profileecho 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profileecho "Hadoop1 ZooKeeper 环境变量配置成功"
fi# 分发环境变量配置文件到hadoop2
scp /etc/profile root@hadoop2:/etc/
if [ $? -eq 0 ]; thenecho "分发 /etc/profile 到 hadoop2 的 /etc 目录成功"
elseecho "分发 /etc/profile 到 hadoop2 的 /etc 目录失败,请检查"exit 1
fi# 分发环境变量配置文件到hadoop3
scp /etc/profile root@hadoop3:/etc/
if [ $? -eq 0 ]; thenecho "分发 /etc/profile 到 hadoop3 的 /etc 目录成功"
elseecho "分发 /etc/profile 到 hadoop3 的 /etc 目录失败,请检查"exit 1
fi# 分发安装程序到hadoop2
scp -r ${SERVERS_DIR}/zookeeper-${ZK_VER} root@hadoop2:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分发 ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录成功"
elseecho "分发 ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录失败,请检查"exit 1
fi# 分发安装程序到hadoop3
scp -r ${SERVERS_DIR}/zookeeper-${ZK_VER} root@hadoop3:${SERVERS_DIR}/
if [ $? -eq 0 ]; thenecho "分发 ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录成功"
elseecho "分发 ${SERVERS_DIR}/zookeeper-${ZK_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录失败,请检查"exit 1
fiecho -e "\n-----zookeeper 完全分布式安装配置完成-----\n"
echo -e "1. 依次在虚拟机Hadoop1、Hadoop2和Hadoop3执行命令 \e[31msource /etc/profile\e[0m 加载环境变量\n"
echo -e "2. 依次在虚拟机Hadoop1、Hadoop2和Hadoop3启动ZooKeeper服务:\e[31mzkServer.sh start\e[0m\n"
echo -e "3. 依次在虚拟机Hadoop1、Hadoop2和Hadoop3查看ZooKeeper服务状态:\e[31mzkServer.sh status\e[0m\n"
echo -e "若要停止ZooKeeper集群运行,依次在虚拟机Hadoop1、Hadoop2和Hadoop3停止ZooKeeper服务: \e[31mzkServer.sh stop\e[0m"exit 0

3.2 添加可执行权限
在虚拟机hadoop1上给脚本文件/export/shell/hadoop1_hadoop_install_config.sh添加可执行权限。
chmod +x /export/shell/hadoop1_zookeeper_install_config.sh

3.3 执行脚本
在虚拟机hadoop1上执行脚本文件自动化安装配置zookeeper完全分布式。
/export/shell/hadoop1_zookeeper_install_config.sh
执行完成如下图所示。

4. 加载环境变量
根据使用shell脚本自动安装完成后的提示依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令加载环境变量。
source /etc/profile

5. 启动Zookeeper集群
在虚拟机hadoop1执行如下命令启动zookeeper。
zkServer.sh start

在虚拟机hadoop2执行如下命令启动zookeeper。
zkServer.sh start

在虚拟机hadoop3执行如下命令启动zookeeper。
zkServer.sh start

6. 查看Zookeeper集群状态
在虚拟机hadoop1执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

在虚拟机hadoop2执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

在虚拟机hadoop3执行如下命令查看Zookeeper集群状态是否正常。
zkServer.sh status

如果集群启动正常如上图所示,会有一个领导者leader,两个跟随者follower。
若要停止Zookeeper集群运行,依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令停止Zookeeper服务。
zkServer.sh stop
相关文章:
Hadoop生态圈框架部署(五)- Zookeeper完全分布式部署
文章目录 前言一、Zookeeper完全分布式部署(手动部署)1. 下载Zookeeper2. 上传安装包2. 解压zookeeper安装包3. 配置zookeeper配置文件3.1 创建 zoo.cfg 配置文件3.2 修改 zoo.cfg 配置文件3.3 创建数据持久化目录并创建myid文件 4. 虚拟机hadoop2安装并…...
【机器学习】聚类算法分类与探讨
💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…...
MySQL中distinct与group by之间的性能进行比较
在 MySQL 中,DISTINCT 和 GROUP BY 都是用于去重或汇总数据的常用 SQL 语法。尽管它们在某些情况下能产生相同的结果,但它们的内部工作方式和性能表现可能有所不同。理解这两者的差异,对于选择正确的语法非常重要,尤其是在处理大量…...
计算机视觉读书系列(1)——基本知识与深度学习基础
研三即将毕业,后续的工作可能会偏AI方向的计算机视觉方面,因此准备了两条线来巩固计算机视觉基础。 一个是本系列,阅读经典《Deep Learning for Vision System》,做一些总结跑一些例子,也对应本系列文章 二是OpenCV实…...
怎么查看navicat的数据库密码
步骤1:打开navicat连接数据库工具,顶部的文件栏-导出结果-勾选导出密码-导出 步骤2:导出结果使用NotePad或文本打开,找到,数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…...
webrtc前端播放器完整案例
https://download.csdn.net/download/jinhuding/89961792...
GORM优化器和索引提示
在使用 GORM 进行数据库操作时,优化器和索引提示可以帮助你提高查询性能。GORM 提供了一些方法来利用这些特性。 优化器提示 优化器提示(Optimizer Hints)是数据库系统提供的功能,用于指导查询优化器如何处理查询。不同的数据库…...
linux驱动-i2c子系统框架学习(1)
可以将整个 I2C 子系统用下面的框图来描述: 可以将上面这一 I2C 子系统划分为三个层次,分别为用户空间、内核空间和硬件层,内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层, 本篇主要内容就是介绍 I2C 子系统框架中…...
元戎启行嵌入式面试题及参考答案
介绍下 CAN 通信原理 控制器局域网(CAN)是一种串行通信协议,主要用于汽车、工业自动化等领域的电子控制单元(ECU)之间的通信。 其通信原理是基于多主站架构。在总线上,多个节点(设备)都可以主动发起通信。CAN 协议使用差分信号来传输数据,通过两条信号线 CAN_H 和 CAN…...
【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽
目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中,Excel是一个非常常用的工具。特别是在Java开发中,EasyExcel库因其简单高效而…...
es数据同步(仅供自己参考)
数据同步的问题分析: 当MySQL进行增删改查的时候,数据库的数据有所改变,这个时候需要修改es中的索引库的值,这个时候就涉及到了数据同步的问题 解决方法: 1、同步方法: 当服务对MySQL进行增删改的时候&…...
apt镜像源制作-ubuntu22.04
# 安装必要的软件 sudo apt-get install -y apt-mirror # 编辑/etc/apt/mirror.list,添加以下内容 set base_path /var/spool/apt-mirror # 指定要镜像的Ubuntu发布和组件-null dir jammy-updates main restricted universe multiverse # 镜像的Ubuntu发布和组件的URL-n…...
libaom 源码分析: 预测编码过程梳理
AV1 预测编码中核心技术 AV1(AOMedia Video 1)作为一种开源的视频编码格式,其预测编码核心技术主要包括以下几个方面: 分区树分割模块: AV1利用多类型分割模式,递归地对图像/视频序列进行分区,以捕捉更丰富的空间信息,从而提升编码效率。这包括新的方向预测分割模式及…...
从0开始学习Linux——Yum工具
往期目录: 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 上一个章节我们简单了解了Linux中常用的一些文本编辑器,本次教程我们将学习yum工具。 一、Yum简介 Yum(全名…...
【Linux】Linux管道揭秘:匿名管道如何连接进程世界
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.什么是管道 ?2. 管道的类型2.1 匿…...
【LeetCode】【算法】155. 最小栈
LeetCode 155. 最小栈 题目描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int …...
3.3 windows,ReactOS系统中页面的换出----1
系列文章目录 文章目录 系列文章目录3.3 页面的换出MiBalancerThread()MmTrimUserMemory()MmPageOutVirtualMemory() 3.3 页面的换出 在前一节中我们看到,如果有映射的页面已经被倒换到磁盘上即倒换文件中,…...
QCustomPlot添加自定义的图例,实现隐藏、删除功能(二)
文章目录 实现步骤:详细代码示例:实现原理和解释:使用方法:其他参考要实现一个支持复选框来控制曲线显示和隐藏的自定义 QCPLegend 类,可以通过继承 QCPLegend 并重写绘制和事件处理方法来实现,同时发出信号通知曲线的状态变更。 实现步骤: 继承 QCPLegend 类,添加绘…...
Linux云计算 |【第五阶段】CLOUD-DAY8
主要内容: 掌握DaemonSet控制器、污点策略(NoSchedule、Noexecute)、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP(服务名自动发现)、(Nodeport、Headless)、Ingress控制器 一…...
岛屿数量 广搜版BFS C#
和之前的卡码网深搜版是一道题 力扣第200题 99. 岛屿数量 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
