Hadoop、Hbase使用Snappy压缩
1. 前期准备
系统环境:centos7.9
配置信息:8C8G100G
hadoop和hbase为单节点部署模式
jdk版本jdk1.8.0_361
1.1. 修改系统时间
timedatectl set-timezone <TimeZone>
1.2. 修改主机名以及主机名和IP的映射
vim /etc/hosts
#将自己的主机名以及ip映射添加进去
1.3. 关闭防火墙
临时关闭防火墙
systemctl stop firewalld.service
永久关闭
systemctl disable firewalld.service
2. hadoop部署
2.1. 下载安装包
mkdir /u01
cd /u01
wget https:
//dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-
3.3
.
6
.tar.gz
2.2. 修改配置文件
2.2.1. 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs:
//192.168.68.129:9000</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/u01/hadoop-
3.3
.
6
/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<property>
<name>io.compression.codec.lzo.
class
</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
</configuration>
2.2.2. 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/u01/hadoop-
3.3
.
6
/hdfs/name</value>
<
final
>
true
</
final
>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/u01/hadoop-
3.3
.
6
/hdfs/data</value>
<
final
>
true
</
final
>
</property>
<property>
<name>dfs.http.address</name>
<value>
192.168
.
68.129
:
50070
</value>
</property>
<property>
<name>dfs.permissions</name>
<value>
false
</value>
</property>
</configuration>
2.2.3. 修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.2.4. 修改hadoop-env.sh
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop
export HADOOP_MAPRED_HOME=/u01/hadoop-3.3.6
export HDFS_NAMENODE_USER=hadoop:
设置NameNode进程以hadoop用户身份运行。NameNode是HDFS中的主节点,负责管理文件系统的命名空间和客户端对文件的访问。
export HDFS_DATANODE_USER=hadoop:
设置DataNode进程以hadoop用户身份运行。DataNode是HDFS中的从节点,负责存储实际的数据块,并执行读写操作。
export HDFS_SECONDARYNAMENODE_USER=hadoop:
设置Secondary NameNode进程以hadoop用户身份运行。Secondary NameNode不是NameNode的备份,而是辅助NameNode进行检查点操作,帮助保持NameNode的运行状态。
export YARN_RESOURCEMANAGER_USER=hadoop:
设置ResourceManager进程以hadoop用户身份运行。ResourceManager是YARN的一部分,负责整个集群的资源管理和分配。
export YARN_NODEMANAGER_USER=hadoop:
设置NodeManager进程以hadoop用户身份运行。NodeManager是YARN的一部分,负责单个节点上的资源管理以及容器的生命周期管理。
export HADOOP_MAPRED_HOME=/u01/hadoop-3.3.6:
指定MapReduce框架的安装目录。这通常指向Hadoop发行版的根目录,在这个例子中是/u01/hadoop-3.3.6。
2.2.5. 修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/u01/hadoop-
3.3
.
6
</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/u01/hadoop-
3.3
.
6
</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/u01/hadoop-
3.3
.
6
</value>
</property>
<!-- 这个参数设为
true
启用压缩 -->
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>
true
</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>
true
</value>
</property>
<!-- 使用编解码器 -->
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
</configuration>
2.2.6. 修改环境变量
vim /etc/profile
export HADOOP_HOME=/u01/hadoop-
3.3
.
6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.3. 启动hadoop服务
2.3.1. 格式化namenode
hdfs namenode -format
2.3.2. 启动服务
./sbin/start-all.sh
启动成功后,使用jps命令查看服务
显示有NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager这5个服务
则为启动成功
查看hdfs和yarn的web界面,端口分别是50070和8088
2.4. 验证snappy压缩
验证方法:运行Hadoop的hadoop-mapreduce-examples-3.3.6.jar测试包进行wordcount,查看生成的文件大小
创建一个文件,input,键入以下内容或其它内容,把这个文件上传到hdfs,当然也可以使用本地文件
jakchquihfquhdqwhcn9eiuhcf198fh8chquihfquhdqwhcwqhdb9uchquihfquhdqwhch91ugh2ufgb92ufb2ufsfcd
2.4.1. 未开启压缩
把mapred-site.xml和core-site.xml相关的snappy配置去掉,重启hadoop服务,执行以下命令行
./bin/hadoop jar /u01/hadoop-
3.3
.
6
/share/hadoop/mapreduce/hadoop-mapreduce-examples-
3.3
.
6
.jar wordcount /u01/input /u01/output-n
查看生成的文件大小,验证结果
2.4.2. 开启压缩
执行以下命令行
./bin/hadoop jar /u01/hadoop-
3.3
.
6
/share/hadoop/mapreduce/hadoop-mapreduce-examples-
3.3
.
6
.jar wordcount /u01/input /u01/output-y4
查看生成的文件大小,验证结果
3. hbase部署
3.1. 下载安装包
cd /u01
wget https:
//dlcdn.apache.org/hbase/2.6.1/hbase-2.6.1-bin.tar.gz
tar -zxvf hbase-
2.6
.
1
-bin.tar.gz
cd hbase-
2.6
.
1
3.2. 修改配置文件
3.2.1. 修改hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>
true
</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs:
//master2:9000/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/u01/hbase-
2.6
.
1
/tmp</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
<property>
<name>hbase.io.compress.snappy.codec</name>
<value>org.apache.hadoop.hbase.io.compress.xerial.SnappyCodec</value>
</property>
</configuration>
3.2.2. 修改hbase-env.xml
如果启动出现SLF4J: Found binding in [jar:file:/u01/hbase-2.6.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
则添加以下配置
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=
true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
这个命令的作用是设置环境变量 HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP
为 true
。这意味着在启动 HBase 时,将禁用 Hadoop 类路径查找功能。
通常情况下,HBase 在启动时会尝试查找 Hadoop 的类路径,以便能够与 Hadoop 集成。但是,在某些环境中,例如在不使用 Hadoop 或者希望使用自定义配置的情况下,禁用这个功能是有意义的。通过设置此环境变量为 true
,可以避免 HBase 自动查找 Hadoop 类路径,从而可能解决一些依赖性问题或者提高启动速度。
3.2.3. 添加环境变量
vim /etc/profile 或者 在/home目录中的.bashrc文件中 添加
export HBASE_HOME=/u01/hbase-
2.6
.
1
export PATH=$PATH:$HBASE_HOME/bin
3.3. 启动hbase服务
./bin/start-hbase.sh
启动成功后,使用jps查看启动的服务有有HQuorumPeer、HMaster、HRegionServer
3.4. 验证snappy压缩
验证方法:使用hbase shell创建两张表compress_1219_3和no_compress_1219_3,一张指定使用snappy压缩,另一张不指定,然后使用hbase java api往这两张表写入相同的数据,观察表的存储大小情况
3.4.1. 建表
使用hbase shell
create
'compress_1219_3'
,{ NAME =>
'cf'
, COMPRESSION =>
'SNAPPY'
}
create
'no_compress_1219_3'
,{ NAME =>
'cf'
}
3.4.2. 生成数据
执行两次,依次向compress_1219_3和no_compress_1219_3写数据
package
com.easipass;
import
org.apache.hadoop.conf.Configuration;
import
org.apache.hadoop.hbase.HBaseConfiguration;
import
org.apache.hadoop.hbase.TableName;
import
org.apache.hadoop.hbase.client.Connection;
import
org.apache.hadoop.hbase.client.ConnectionFactory;
import
org.apache.hadoop.hbase.client.Put;
import
org.apache.hadoop.hbase.client.Table;
import
org.apache.hadoop.hbase.util.Bytes;
import
java.io.IOException;
public
class
Main {
public
static
void
main(String[] args)
throws
IOException {
Configuration configuration = HBaseConfiguration.create();
configuration.set(
"hbase.zookeeper.property.clientPort"
,
"2181"
);
// 如果是集群 则主机名用逗号分隔
configuration.set(
"hbase.zookeeper.quorum"
,
"192.168.68.129"
);
Connection connection = ConnectionFactory.createConnection(configuration);
//修改为compress_1219_3和no_compress_1219_3,分别执行
Table table = connection.getTable(TableName.valueOf(
"compress_1219_2"
));
//rowkey
for
(
int
i =
1
; i <
200000
; i++) {
Put put =
new
Put(Bytes.toBytes(
"H5000000"
+i));
//列簇,列名,列值
put.addColumn(
Bytes.toBytes(
"cf"
),
Bytes.toBytes(
"name"
),
Bytes.toBytes(
"AAAAAAABBBB中文Hadoop、hbase使用snappy压缩"
+
"5000000"
+i)
);
put.addColumn(
Bytes.toBytes(
"cf"
),
Bytes.toBytes(
"age"
),
Bytes.toBytes(
"AAAAAAABBBB中age文Hadoop、hbase使用snappy压缩"
+
"5000000"
+i)
);
table.put(put);
}
table.close();
connection.close();
}
}
3.4.3. 从内存flush到磁盘
使用hbase shell的flush命令手动将两张表的数据从内存写到磁盘
flush
'compress_1219_3'
flush
'no_compress_1219_3'
3.4.4. 未开启压缩
查看表配置
查看region大小和表存储大小
再来查看hdfs的存储情况
第一列为一个副本的大小,第二列为3个副本占用的总存储大小
3.4.5. 开启压缩
查看表配置
查看region大小和表存储大小
共产生了一个region
再来查看hdfs的存储情况
第一列为一个副本的大小,第二列为3个副本占用的总存储大小
相关文章:
Hadoop、Hbase使用Snappy压缩
1. 前期准备 系统环境:centos7.9 配置信息:8C8G100G hadoop和hbase为单节点部署模式 jdk版本jdk1.8.0_361 1.1. 修改系统时间 timedatectl set-timezone <TimeZone> 1.2. 修改主机名以及主机名和IP的映射 vim /etc/hosts #将自己的主机名以及…...
初试Docker
1. 查看版本 docker --version2. 拉取镜像并查看当前存在的镜像 docker pull hello-world查看是否成功拉取到docker docker images在Docker Desktop 可视化查看 3. 删除镜像 docker rmi xxx4. 启动容器 以下命令使用 mysql镜像启动一个容器,参数为以命令行模…...
【Rust自学】4.5. 切片(Slice)
4.5.0. 写在正文之前 这是第四章的最后一篇文章了,在这里也顺便对这章做一个总结: 所有权、借用和切片的概念确保 Rust 程序在编译时的内存安全。 Rust语言让程序员能够以与其他系统编程语言相同的方式控制内存使用情况,但是当数据所有者超…...
番外:ubuntu 下的sqlite3
What Is SQLite? SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world ps:SQLite Home Page sqlite3 的安装: user…...
全脐点曲面当且仅当平面或者球面的一部分
S 是全脐点曲面当且仅当 S 是平面或者球面的一部分。 S_\text{ 是全脐点曲面当且仅当 }{S_\text{ 是平面或者球面的一部分。}} S 是全脐点曲面当且仅当 S 是平面或者球面的一部分。 证: 充分性显然,下证必要性。 若 r ( u , v ) r(u,v) r(u,v)是…...
Vue之版本演进
一、引言 Vue.js,发音为 /vjuː/,是一款轻量级的用于构建用户界面的渐进式JavaScript框架。自2014年由前Google工程师尤雨溪(Evan You)发布以来,Vue.js凭借其简洁的API、灵活的组件系统以及高效的性能,迅速…...
四川托普信息技术职业学院教案1
四川托普信息技术职业学院教案 【计科系】 周次 第 1周,第1次课 备 注 章节名称 第1章 XML语言简介 引言 1.1 HTML与标记语言 1.2 XML的来源 1.3 XML的制定目标 1.4 XML概述 1.5 有了HTML了,为什么还要发展XML 1.5.1 HTML的缺点 1.5.2 XML的特点 1.6 X…...
《Java核心技术I》Swing中的边框
边框 BorderFactory静态方法创建边框,凹斜面,凸斜面,蚀刻,直线,蒙版,空白。 边框添加标题,BorderFactory.createTitledBorder 组合边框,BorderFactory.createCompoundBorder JCo…...
xlua中自定义lua文件加载的一种方式
此种方法来自LoxodonFramework,这里只做记录 定义一个LoaderBase类,做一个到CustomLoader的隐式类型转换 public abstract class LoaderBase {protected abstract byte[] Load(ref string fileName);/// <summary>/// 隐式类型转换,将…...
Suno Api V4模型无水印开发「高清音频WAV下载」 —— 「Suno Api系列」第6篇
历史文章 Suno AI API接入 - 将AI音乐接入到自己的产品中,支持120并发任务 Suno Api V4模型无水印开发「灵感模式」 —— 「Suno Api系列」第1篇 Suno Api V4模型无水印开发「自定义模式」 —— 「Suno Api系列」第2篇 Suno Api V4模型无水印开发「AI生成歌词」…...
EE308FZ_Sixth Assignment_Beta Sprint_Sprint Essay1
AssignmentBeta SprintCourseEE308FZ[A] — Software EngineeringClass Link2401_MU_SE_FZURequirementsSixth Assignment——Beta SprintTeam NameFZUGOObjectiveSprint Essay 1_Day1-Day2 (12.11-12.12)Other Reference1. WeChat Mini Program Design Guide 2. Javascript St…...
github如何给本机绑定 ssh密钥(MACOS)
生成 SSH 密钥 如果没有现成的密钥,执行以下命令来生成一个新的 SSH 密钥: ssh-keygen -t rsa -b 4096 -C "替换为你的邮箱" 添加 SSH 密钥到 SSH 代理 在终端中运行以下命令,启动 SSH 代理: eval "$(ssh-agen…...
使用Python实现基于AR的教育应用:打破课堂的墙壁
友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…...
【数据分析】层次贝叶斯
文章目录 一、 贝叶斯推理二、 层次贝叶斯模型三、 层次贝叶斯的特点四、 数学表述五、推断方法六、应用领域 层次贝叶斯(Hierarchical Bayesian)方法是一种基于贝叶斯推理的统计模型,用于处理具有多个层次结构的数据模型。 它允许我们在同一…...
linux top命令刷新速度的原理
top命令刷新速度的原理 top命令默认会按照一定的时间间隔(通常是3秒)更新系统资源使用情况的显示内容。它通过读取系统的/proc文件系统中的相关文件(如/proc/stat用于CPU信息、/proc/meminfo用于内存信息等)来获取最新的进程和资源…...
bestphp‘s revenge
bestphp’s revenge 知识点 php session反序列化 解题 <?php highlight_file(__FILE__); $b implode; call_user_func($_GET[f], $_POST); //参数二的位置固定为 $_POST 数组,我们很容易便想到利用 extract 函数进行变量覆盖,以便配合后续利用…...
中化信息与枫清科技深化合作:共探“AI+”产业新生态
随着数字化转型的浪潮席卷全球,数据已成为推动创新和经济增长的关键力量。为持续深化数据要素价值挖掘与应用实践,推动打造行业交流平台,驱动产业创新共荣,2024 年 12 月 18 日 -19 日,由中国通信标准化协会主办的“20…...
Java性能测试Benchmark使用总结
如何测量Java代码的性能 在 Java 中,可以使用多种方法来测量一段代码的执行性能。使用 System.currentTimeMillis()是最常见的方法 long startTime System.currentTimeMillis();// 需要测量的代码块 for (int i 0; i < 1000000; i) {// 示例代码 }long endTi…...
完整微服务设计 功能实现
我们将以一个简单的电商系统为例,实现微服务架构,逐步用Java代码详细实现每个模块,并配合注释帮助小白理解。在这个实现中,我们使用以下工具和框架: Spring Boot:用于构建微服务。Spring Cloud:…...
【Java基础面试题025】什么是Java的Integer缓存池?
回答重点 Java的Integer缓存池(Integer Cache)是为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围,因此缓存这些对象可以减少内存分配和垃圾回收的负担,提升性能 在 -128到127范围内的Integer对象会…...
道可云人工智能元宇宙每日资讯|浙江工商大学发布“人工智能时代创新型人才培养行动计划”
道可云元宇宙每日简报(2024年12月20日)讯,今日元宇宙新鲜事有: 浙江工商大学发布“人工智能时代创新型人才培养行动计划” 12月18日,浙江工商大学发布了《人工智能时代创新型人才培养行动计划》,提出人工…...
树莓派4B 搭建openwrt内置超多插件docker,nas等等使用教程
刷入固件 (想要固件的加我vx wyy7293) bleachwrt-plus-20241112-bcm27xx-bcm2711-rpi-4-squashfs-factory.img上电,并且把网线两头分别插在pi网口上和电脑的网口上(电脑必须断网) 等待网口灯亮,进入192.168.1.1 默认账密 root password 进入系统后更改openwrt的网关地址相关…...
excel 列名是数据表 的字段名 ,单元格的值 是数据表对应字段的值,生成sql插入语句
在 Excel 中,按 Alt F11 打开 VBA 编辑器。在菜单栏选择 插入 -> 模块,在新模块中粘贴以下代码。 VBA 代码 Sub GenerateSQLInsertStatementsToFile()Dim ws As WorksheetDim lastRow As Long, lastCol As Long, i As Long, j As LongDim sql As S…...
【Rust自学】4.3. 所有权与函数
4.3.0 写在正文之前 在学习了Rust的通用编程概念后,就来到了整个Rust的重中之重——所有权,它跟其他语言都不太一样,很多初学者觉得学起来很难。这个章节就旨在让初学者能够完全掌握这个特性。 本章有三小节: 所有权࿱…...
OpenShift 4 - 多云管理(2) - 配置多集群观察功能
《OpenShift / RHEL / DevSecOps 汇总目录》 本文在 OpenShift 4.17 RHACM 2.12 环境中进行验证。 文章目录 多集群观察技术架构安装多集群观察功能监控多集群的运行状态监控多集群的应用运行在被管集群监控应用运行在管理集群监控被管集群的应用运行 参考 多集群观察技术架构…...
【机器学习】机器学习的基本分类-强化学习(Reinforcement Learning, RL)
强化学习(Reinforcement Learning, RL)是一种基于试错的方法,旨在通过智能体与环境的交互,学习能够最大化累积奖励的策略。以下是强化学习的详细介绍。 强化学习的核心概念 智能体(Agent) 执行动作并与环境…...
Docker 设置代理的三种方法(2024年12月19日亲自测试)
Docker 设置代理的三种方法 在 Docker 中设置代理是非常常见的需求,尤其是在某些需要通过代理访问外部资源的网络环境下。本文将介绍三种配置 Docker 使用代理的常见方法:通过 daemon.json 配置镜像加速器、通过 daemon.json 配置 HTTP/HTTPS 代理、以及…...
Pycharm配置Python开发环境
Pycharm配置Python开发环境 在之前的文章中,安装好了Pyhton和Pycharm。 打开Pycharm,如下图 配置完成之后,如下图所示:...
【信息系统项目管理师】高分论文:论信息系统项目的进度管理(一体化智能公共数据平台)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划进度管理2、定义活动3、排列活动顺序5、制定进度计划6、控制进度论文 2022年9月,我作为项目经理参加了XX市的一体化智能公共数据平台项目的建设工作,2022年是XX市政府数字化改革的元年,全市上下…...
Chromium CDP 开发(十):Chromium 中增加自己的Domain
1. 引言 在深入了解了 Chromium CDP(Chrome DevTools Protocol)的开发过程之后,接下来我们将探讨如何创建一个自定义的 CDP Domain。通过为特定功能创建自己的 CDP Domain,可以避免对已有的 CDP 进行侵入式修改,从而更…...
《基于 Python 的网页爬虫详细教程》
一、引言 在当今信息时代,从互联网上获取大量有价值的数据对于许多领域的研究和分析至关重要。网页爬虫是一种自动化程序,可以从网页上抓取所需的数据。Python 作为一种强大的编程语言,拥有丰富的库和工具,使得网页爬虫的开发变得…...
前端知识图谱 - JavaScript基础(变量和类型)
变量和类型 1. JavaScript 规定了几种语言类型? JavaScript 语言的每一个值都属于某一种数据类型,它规定了 7 种语言类型。语言类型广泛用于变量、函数参数、表达式、函数返回值等场合,根据最新的语言标准,这 7 种语言类型如下&…...
五十个网络安全学习项目——(九)无线网络安全分析
五十个网络安全学习项目——(九)无线网络安全分析 这个系列灵感来源是:50个网络安全项目创意:覆盖新手至专家级,本人打算把这些项目都做一遍,做好记录,也算是对自己的提升。 本文将对WAPI 协议…...
10. 考勤信息
题目描述 公司用一个字符串来表示员工的出勤信息 absent:缺勤late: 迟到leaveearly: 早退present: 正常上班 现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下: 缺勤不超过一次,没有连续的迟到/早退:任意连续7次考勤&a…...
预览和下载 (pc和微信小程序)
1.微信小程序 预览pdf 或者 图片等 //utils.js 文件//通过接口返回文件链接 打开文档 export default function previewFile({ downLinkUrl, tempFilePath }) {let url "https://" downLinkUrl.replace("http://", "").replace("https:…...
Redis 7.x如何安装与配置?保姆级教程
大家好,我是袁庭新。最新写了一套最新版的Redis 7.x企业级开发教程,今天先给大家介绍下Redis 7.x如何在Linux系统上安装和配置。 1 Redis下载与安装 使用非关系型数据库Redis必须先进行安装配置并开启Redis服务,然后使用对应客户端连接使用…...
序列化和反序列化(一)
因为通过这段时间的学习,发现,序列化和反序列化的考点和漏洞在平时遇到的还是比较多的,而且自己也没有特别去学习过这个知识点,所以在这里写一篇关于这里序列化和反序列话的博客,废话就停止在这里了。 在介绍具体的序列…...
1小时放弃Rust(2): 两数之和
1. 目的 陈越姥姥说,ACM拿奖的人有两类,一类是 NOIP 搞了好几年的,另一类是大学才开始搞 ACM 但是专注度远超常人的人。 学习 Rust 大概也是需要高度的专注度。让我试一下 ACM 的入门题目 AB 吧! 2. 题目地址 https://leetcod…...
罗德与施瓦茨NRP33SN,一款独立、特性齐全的功率探头
罗德与施瓦茨NRP33SN功率探头概述 ROHDE & SCHWARZ NRP33S 三路二极管功率传感器 罗德与施瓦茨 NRP33S 三路二极管功率传感器是一款独立 、特性齐全的仪器。它们可以通过罗德与施瓦茨 NRP2 基 本单元、通过 USB 的笔记本电脑/PC 以及许多罗德与施瓦 茨仪器(例如…...
【GoF23种设计模式】02_单例模式(Singleton Pattern)
文章目录 前言一、什么是单例模式?二、为什么要用单例模式?三、如何实现单例模式?总结 前言 提示:设计者模式有利于提高开发者的编程效率和代码质量: GoF(Gang of Four,四人帮)设计…...
springboot452当代中国获奖的知名作家信息管理系统的设计与实现(论文+源码)_kaic
摘 要 计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话…...
基于Redis的网关鉴权方案与性能优化
文章目录 前言一、微服务鉴权1.1 前端权限检查1.2 后端权限检查1.3 优缺点 二、网关鉴权2.1 接口权限存储至Redis2.2 网关鉴权做匹配 总结 前言 在微服务架构中,如何通过网关鉴权结合Redis缓存提升权限控制的效率与性能。首先,文章对比了两种常见的权限…...
FutureWarning: `clean_up_tokenization_spaces` was not set.
警告内容: "clean_up_tokenization_spaces was not set. It will be set to True by default. This behavior will be deprecated in transformers v4.45, and will be then set to False by default. For more details check this issue: https://github.com…...
卫星综合电子软件系统
微小卫星星载综合电子系统采用星上总线网络将星载功能模块互相连接,实现微小卫星平台的模块集成、资源重组优化以及内部信息共享和综合利用。综合电子系统是微小卫星的核心组成部分,是整星的信息和控制中心。 包括遥控遥测管理系统、载荷管理系统、 热控…...
M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务
M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程(目标-手段分析)核心问题拆解 3. 实…...
开源数字人系统源码短视频文案提取文案改写去水印小程序
应用场景 短视频去水印: 个人用户:在社交媒体上分享短视频时,去除原视频中的水印,以保护个人隐私或避免侵权问题。企业用户:在广告、宣传和营销活动中,使用无水印的短视频以提高品牌知名度和吸引力。 文案提…...
范德蒙矩阵(Vandermonde 矩阵)简介:意义、用途及编程应用
参考: Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares Stephen Boyd and Lieven Vandenberghe 书的网站: https://web.stanford.edu/~boyd/vmls/ Vandermonde 矩阵简介:意义、用途及编程应用 在数学和计算科学中&a…...
CSSmodule的作用是什么
CSS Modules的作用主要体现在以下几个方面: 1. 解决全局样式污染问题 在传统的CSS管理方式中,样式定义通常是全局的,这很容易导致全局样式污染。当多个组件或页面共享同一个样式时,可能会出现样式冲突和覆盖的情况,从…...
winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭
winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭 protected override void WndProc(ref Message m){#region 处理点击窗体标题栏放大缩小问题,禁用点击窗体标题栏放大缩小//logger.Info($&…...
【Go系列】:全面掌握 Sentinel — 构建高可用微服务的流量控制、熔断、降级与系统防护体系
前言 在现代分布式系统架构中,服务的稳定性和可用性是至关重要的。随着微服务和云原生技术的发展,如何有效地进行流量控制、熔断降级以及系统保护成为了一个关键课题。Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制组件,它不仅…...