当前位置: 首页 > news >正文

Hadoop生态圈框架部署 伪集群版(五)- HBase伪分布式部署

文章目录

  • 前言
  • 一、Hbase伪分布式部署(手动部署)
    • 1. 下载Hbase
    • 2. 上传安装包
    • 3. 解压HBase安装包
    • 4. 配置HBase配置文件
      • 4.1 修改hbase-env.sh配置文件
      • 4.2 修改hbase-site.xml配置文件
      • 4.3 修改regionservers配置文件
      • 4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件
    • 5. 配置HBase系统环境变量
    • 8. 启动HBase伪集群
    • 9. 进入HBase客户端
    • 10. 访问 HBase 的 Web UI 页面
      • 10.1 访问 Master 的 UI 页面
      • 10.2 访问 RegionServer 的 UI 页面
    • 11. 停止HBase伪集群
    • 注意
  • 二、使用shell脚本自动部署Hbase伪分布式(选看)
    • 1. 下载Hbase
    • 2. 上传安装包
    • 3. 使用shell脚本自动部署Hbase伪分布式
      • 3.1 创建 hbase_install_config.sh 脚本文件并添加脚本内容
      • 3.2 添加可执行权限
      • 3.3 执行脚本
    • 4. 加载环境变量
    • 5. 启动HBase伪集群
    • 6. 进入HBase客户端
    • 7. 访问 HBase 的 Web UI 页面
      • 7.1 访问 Master 的 UI 页面
      • 7.2 访问 RegionServer 的 UI 页面
    • 8. 停止HBase伪集群


前言

本文将详细介绍HBase的伪分布式部署过程,包括从下载和安装到配置和启动的每一个步骤。通过手动部署,读者将能够深入理解HBase的配置文件及其参数设置,从而为后续的集群管理和应用开发打下坚实的基础。


一、Hbase伪分布式部署(手动部署)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至/export/software目录。

在这里插入图片描述

或者可以使用wget命令直接下载的Hbase安装包hbase-2.4.18-bin.tar.gz到/export/software目录。

wget https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz -P /export/software/

3. 解压HBase安装包

上传完成后将HBase安装包通过解压方式安装至/export/servers目录。

tar -zxvf /export/software/hbase-2.4.18-bin.tar.gz -C /export/servers

在这里插入图片描述

4. 配置HBase配置文件

4.1 修改hbase-env.sh配置文件

修改hbase运行时环境变量配置文件/export/servers/hbase-2.4.18/conf/hbase-env.sh,执行如下命令添加配置。

echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh

在这里插入图片描述

4.2 修改hbase-site.xml配置文件

修改hbase配置文件/export/servers/hbase-2.4.18/conf/hbase-site.xml,执行如下命令修改配置。

cat >/export/servers/hbase-2.4.18/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>/export/data/hbase2.4.18</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>hdfs://hadoop:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop:2181</value></property><property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.port</name><value>16020</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property>
</configuration>
EOF

在这里插入图片描述

4.3 修改regionservers配置文件

修改/export/servers/hbase-2.4.18/conf/regionservers配置文件,配置RegionServer 节点,执行如下命令修改配置。

cat >/export/servers/hbase-2.4.18/conf/regionservers <<EOF
hadoop
EOF

在这里插入图片描述

4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件

执行如下命令删除hbase中slf4j-reload4j-1.7.33.jar文件,解决与hadoop中另一个日志jar包相同类的冲突。

rm -f /export/servers/hbase-2.4.18/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar

在这里插入图片描述

5. 配置HBase系统环境变量

使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用HBase的环境变量生效。

source /etc/profile

在这里插入图片描述

8. 启动HBase伪集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 和 Zookeeper。

启动 hadoop 伪分布式。

start-all.sh

在这里插入图片描述

启动单机 zookeeper 并查看状态是否正常。

zkServer.sh start
zkServer.sh status

在这里插入图片描述

执行如下命令启动HBase伪分布式。

start-hbase.sh

在这里插入图片描述

9. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

hbase shell

测试能否正常使用HBase命令。

create 't1','f1'

在这里插入图片描述

退出HBase命令行客户端。

exit

在这里插入图片描述

10. 访问 HBase 的 Web UI 页面

10.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.100:16010即可访问 Master 的 UI 页面。

在这里插入图片描述

10.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.100:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

11. 停止HBase伪集群

如果要停止HBase伪集群运行,执行如下命令停止HBase伪集群。

stop-hbase.sh

在这里插入图片描述

单独停止 master 和 regionserver
若执行stop-hbase.sh命令不能成功停止hbase集群,则执行如下命令单独停止master

hbase-daemon.sh stop master

执行如下命令单独停止regionserver

hbase-daemon.sh stop regionserver

注意

如果安装过程出现问题,需要重新安装,执行如下命令删除对应数据目录。若HBase已经启动需要先停止HBase伪分布式运行。

hbase-daemon.sh stop master
hbase-daemon.sh stop regionserver
rm -rf /export/data/hbase2.4.18
hdfs dfs -rm -r /hbase
zkCli.sh
deleteall /hbase
quit

二、使用shell脚本自动部署Hbase伪分布式(选看)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至/export/software目录。

在这里插入图片描述

3. 使用shell脚本自动部署Hbase伪分布式

3.1 创建 hbase_install_config.sh 脚本文件并添加脚本内容

执行如下命令创建hbase_install_config.sh脚本文件

touch /export/shell/hbase_install_config.sh

添加如下内容:

#!/bin/bash# 定义常量
HBASE_VER="2.4.18"
HBASE_TAR="hbase-${HBASE_VER}-bin.tar.gz"
DATA_DIR="/export/data"
SOFTWARE_DIR="/export/software"
SERVERS_DIR="/export/servers"# 检查hbase是否已解压
if [ -d "${SERVERS_DIR}/hbase-${HBASE_VER}" ]; thenecho "hadoop安装程序已存在,正在删除原安装程序目录..."rm -rf "${SERVERS_DIR}/hbase-${HBASE_VER}"
fi# 检查hbase安装包是否存在
if [ -f ${SOFTWARE_DIR}/${HBASE_TAR} ]; thenecho "hbase安装包存在,正在解压安装包..."# 解压HBase安装包tar -zxvf ${SOFTWARE_DIR}/${HBASE_TAR} -C ${SERVERS_DIR}echo "解压 ${SOFTWARE_DIR}/${HBASE_TAR}${SERVERS_DIR} 目录成功"
elseecho "HBase安装包不存在,请先上传安装包到 ${SOFTWARE_DIR} 目录"exit 1
fi# 修改hbase-env.sh配置文件
echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh# 修改hbase-site.xml配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>/export/data/hbase2.4.18</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>hdfs://hadoop:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop:2181</value></property><property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.port</name><value>16020</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property>
</configuration>
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml 配置文件修改成功"# 修改regionservers配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers <<EOF
hadoop
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers 配置文件修改成功"# 删除hbase中slf4j-reload4j-1.7.33.jar文件
rm -f ${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar
if [ $? -eq 0 ]; thenecho "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除成功"
elseecho "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除失败,请检查"exit 1
fi# 删除hbase临时数据目录
rm -rf ${DATA_DIR}/hbase${HBASE_VER}# 删除hbase在hdfs上的数据目录
hdfs dfs -rm -r /hbase# 删除hbase在zookeeper上的数据目录
zkCli.sh <<EOF
deleteall /hbase
quit
EOF# 设置hbase环境变量
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile
echo "虚拟机Hadoop1的hbase环境变量设置成功"echo -e "\n-----hbase 伪分布式安装配置完成-----\n"
echo -e "1. 执行命令 \e[31msource /etc/profile\e[0m 加载环境变量\n"
echo -e "2. 启动HBase伪集群:\e[31mstart-hbase.sh\e[0m\n"
echo -e "3. 若要停止hbase伪集群,执行:\e[31mstop-hbase.sh\e[0m\n"exit 0

3.2 添加可执行权限

给脚本文件/export/shell/hbase_install_config.sh添加可执行权限。

chmod +x /export/shell/hbase_install_config.sh

在这里插入图片描述

3.3 执行脚本

执行脚本文件自动化安装配置HBase伪分布式。

/export/shell/hbase_install_config.sh

执行完成如下图所示。

在这里插入图片描述

4. 加载环境变量

根据使用shell脚本自动安装完成后的提示,执行如下命令加载环境变量。

source /etc/profile

在这里插入图片描述

5. 启动HBase伪集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 和 Zookeeper。

启动 hadoop 伪分布式。

start-all.sh

在这里插入图片描述

启动单机 zookeeper 并查看状态是否正常。

zkServer.sh start
zkServer.sh status

在这里插入图片描述

执行如下命令启动HBase伪分布式。

start-hbase.sh

在这里插入图片描述

6. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

hbase shell

测试能否正常使用HBase命令。

create 't1','f1'

在这里插入图片描述

退出HBase命令行客户端。

exit

在这里插入图片描述

7. 访问 HBase 的 Web UI 页面

7.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.100:16010即可访问 Master 的 UI 页面。

在这里插入图片描述

7.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.100:16030即可访问 RegionServer 的 UI 页面。

在这里插入图片描述

8. 停止HBase伪集群

如果要停止HBase伪集群运行,执行如下命令停止HBase伪集群。

stop-hbase.sh

在这里插入图片描述

单独停止 master 和 regionserver
若执行stop-hbase.sh命令不能成功停止hbase集群,则执行如下命令单独停止master

hbase-daemon.sh stop master

执行如下命令单独停止regionserver

hbase-daemon.sh stop regionserver

相关文章:

Hadoop生态圈框架部署 伪集群版(五)- HBase伪分布式部署

文章目录 前言一、Hbase伪分布式部署&#xff08;手动部署&#xff09;1. 下载Hbase2. 上传安装包3. 解压HBase安装包4. 配置HBase配置文件4.1 修改hbase-env.sh配置文件4.2 修改hbase-site.xml配置文件4.3 修改regionservers配置文件4.4 删除hbase中slf4j-reload4j-1.7.33.jar…...

自定义指令,全局,局部,注册

让输入框自动获取焦点(每次刷新自动获取焦点&#xff09; <template><div><h3>自定义指令</h3><input ref"inp" type"text"></div> </template><script> export default {mounted(){this.$refs.inp.focus…...

静坐修心.

文章目录 打坐的历史文化渊源东方的起源与传承西方的接受与演变现代生活中的打坐 盘腿坐对身体的影响促进脊椎健康改善呼吸系统功能增强消化系统机能改善血液循环调节神经系统错误姿势及其他潜在危害 盘腿坐对心理的作用促进内心平静与放松提升自我觉察与内在探索培养专注力与精…...

设计模式c++(一)

文章目录 一、面向对象设计原则二、模版方法三、策略模式四、观察者模式五、装饰模式六、桥模式七、工厂方法_Factory Method八、抽象工厂_Abstract Factory九、原型模式十、构建器_builder十一、单件模式_Singleton十二、享元模式_Flyweight 一、面向对象设计原则 设计模式的…...

核密度估计——从直方图到核密度(核函数)估计_带宽选择

参考 核密度估计&#xff08;KDE&#xff09;原理及实现-CSDN博客 机器学习算法&#xff08;二十一&#xff09;&#xff1a;核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区 引言 在统计学中&#xff0c;概率密度估计是一种重要的方法&#xff0…...

Vant UI Axure移动端元件库:提升移动端原型设计效率

UI框架的选择对于提升开发效率和用户体验至关重要。Vant UI&#xff0c;作为一款基于Vue.js的轻量、可靠的移动端组件库&#xff0c;自2017年开源以来&#xff0c;凭借其丰富的组件库、良好的性能以及广泛的兼容性&#xff0c;在移动端开发领域崭露头角&#xff0c;赢得了众多开…...

如何用 JavaScript 操作 DOM 元素?

如何用 JavaScript 操作 DOM 元素&#xff1f;——结合实际项目代码示例讲解 在前端开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;操作是与页面交互的核心。通过 DOM 操作&#xff0c;开发者可以动态地修改页面内容、响应用户交互、控制样式等。JavaScript 提供…...

【Ubuntu】URDC(Ubuntu远程桌面助手)安装、用法,及莫名其妙进入全黑模式的处理

1、简述 URDC是Ubuntu远程桌面助手的简称。 它可以: 实时显示桌面:URDC支持通过Windows连接至Ubuntu设备(包括x86和ARM架构,例如Jetson系列、树莓派等)的桌面及光标。远程操控双向同步剪切板多客户端连接:同一Ubuntu设备最多可同时被三台Windows客户端连接和操控,适用于…...

ES-DSL查询

term查询 因为精确查询的字段搜是不分词的字段&#xff0c;因此查询的条件也必须是不分词的词条。查询时&#xff0c;用户输入的内容跟自动值完全匹配时才认为符合条件。如果用户输入的内容过多&#xff0c;反而搜索不到数据。 语法说明&#xff1a; // term查询 GET /index…...

npm 设置镜像

要在npm中设置镜像&#xff0c;你可以使用npm config命令。以下是设置npm镜像的步骤&#xff1a; 临时使用淘宝镜像&#xff1a; npm --registry https://registry.npmmirror.com install package-name 永久设置镜像&#xff1a; npm config set registry https://registry…...

SpringMvc完整知识点一

SpringMVC概述 定义 SpringMVC是一种基于Java实现MVC设计模型的轻量级Web框架 MVC设计模型&#xff1a;即将应用程序分为三个主要组件&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。这种分离…...

STM32G4系列MCU双ADC多通道数据转换的应用

目录 概述 1 STM32Cube配置项目 1.1 基本参数配置 1.1.1 ADC1参数配置 1.1.2 ADC2参数配置 1.2 项目软件架构 2 功能实现 2.1 ADC转换初始化 2.2 ADC数据组包 3 测试函数 3.1 Vofa数据接口 3.2 输入数据 4 测试 4.1 ADC1 通道测试 4.2 ADC2 通道测试 概述 本文…...

【工具】音频文件格式转换工具

找开源资源、下载测试不同库的效果&#xff0c;然后找音频、下载音频、编写代码、测试转换、流程通畅。写一个工具花的时间越来越多了&#xff01;这个 5 天 这个工具是一个音频文件格式转换工具&#xff0c;支持对 mp3.aac.wav.caf.flac.ircam.mp2.mpeg.oga.opus.pcm.ra.spx.…...

ssl证书过期,nginx更换证书以后仍然显示过期证书

记一次nginx部署异常 今天提示ssl证书过期了&#xff0c;然后重新申请了一个证书 反反复复折腾了一个上午&#xff0c;还更换了好几个平台&#xff0c;发现怎么更换都没用&#xff0c;百度上的解决方法都试过了&#xff0c;发现都没用&#xff0c;证书还是显示的原来那一个&…...

原型模式(Prototype Pattern)——对象克隆、深克隆与浅克隆及适用场景

原型模式&#xff08;Prototype Pattern&#xff09;是设计模式中的一种创建型模式&#xff0c;目的是通过复制现有的对象来创建新的对象&#xff0c;而不是通过传统的实例化方式。原型模式常常用于需要创建大量类似对象的场景&#xff0c;可以提高性能并减少资源的消耗。下面将…...

从工标网网站解析标准信息

import requests from bs4 import BeautifulSoup 将标准搜索关键词转化成GBK格式&#xff0c;并用%连接转化后16进制&#xff0c;转化成工标网的查询网址url text “GB/T 9755” utf8_encoded_text text.encode(‘GBK’) #print(utf8_encoded_text) hex_representation ‘…...

如何在MySQL中开启死锁日志及查看日志

在数据库的多用户环境中&#xff0c;死锁是一个常见的问题&#xff0c;它可能会影响到数据库的性能和稳定性。MySQL提供了一些工具和命令来帮助我们识别和解决死锁问题。本文将介绍如何在MySQL中开启死锁日志以及如何查看这些日志。 一、为什么需要死锁日志 死锁是指两个或多…...

VCP-CLIP A visual context prompting modelfor zero-shot anomaly segmentation

GitHub - xiaozhen228/VCP-CLIP: (ECCV 2024) VCP-CLIP: A visual context prompting model for zero-shot anomaly segmentation 需要构建正样本&#xff0c;异常样本&#xff0c;以及对应的Mask...

分类算法中的样本不平衡问题及其解决方案

一、样本不平衡问题概述 在机器学习的分类任务中&#xff0c;样本不平衡是指不同类别训练样本数量存在显著差异的现象。这一差异会给模型训练和性能评估带来挑战&#xff0c;尤其在处理少数类样本时&#xff0c;模型可能难以有效学习其特征。 以二分类为例&#xff0c;理想情况…...

博物馆导览系统方案(一)背景需求分析与核心技术实现

维小帮提供多个场所的室内外导航导览方案&#xff0c;如需获取博物馆导览系统解决方案可前往文章最下方获取&#xff0c;如有项目合作及技术交流欢迎私信我们哦~撒花&#xff01; 一、博物馆导览系统的背景与市场需求 在数字化转型的浪潮中&#xff0c;博物馆作为文化传承和知…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...