大数据相关操作
大数据相关操作
一、环境配置
1、修改主机名
#修改主机名
hostnamectl set-hostname master
2、固定IP地址
# 进入修改
sudo vim /etc/netplan/01-network-manager-all.yaml# 修改配置文件
# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManagerethernets:ens33:dhcp4: falseaddresses: [192.168.88.101/24]optional: trueroutes:- to: defaultvia: 192.168.88.2nameservers:addresses: [192.168.88.2]# 测试配置内容是否正确
sudo netplan apply try# 重启网络服务
sudo systemctl restart NetworkManager.service
3、修改主机名映射
# 进入修改文件
sudo vim /etc/hosts# 修改配置内容
192.168.88.101 master
192.168.88.102 node1
192.168.88.103 node2
192.168.88.104 node3
4、配置SSH免密登录
# 下载ssh
sudo apt install openssh-server# 生成ssh密钥
ssh-keygen -t rsa# 授权免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
5、关闭防火墙
# 不用管
6、时区同步
# 同步时区
sudo timedatectl set-timezone Asia/Shanghai
# 查看是否同步成功
timedatectl
7、配置Java环境
# 安装JDK
sudo apt install openjdk-8-jdk# 进入配置文件
sudo vim ~/.bashrc# 修改配置文件
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64# 使配置文件生效
source ~/.bashrc# 查看是否配置成功
echo $JAVA_HOME
二、Hadoop安装搭建
1、下载hadoop
下载网址:Apache Download Mirrors
2、解压hadoop
# 解压
sudo tar -zxf hadoop-3.4.0.tar.gz -C /usr/local# 修改文件名字
cd /usr/local
sudo mv hadoop-3.4.0 hadoop# 查看hadoop是否可用
cd /usr/local/hadoop
./bin/hadoop version#修改hadoop的文件权限
sudo chown -R hxy /usr/local/hadoop
3、修改hadoop环境变量
# 进入配置文件
sudo vim ~/.bashrc# 修改配置文件
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin# 使配置文件生效
source ~/.bashrc# 查看是否配置成功
hadoop version
4、HDFS配置
#进入hadoop-env.sh配置文件
sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh# 修改hadoop-env.sh配置文件内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64# 进入core-site.xml配置文件
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml# 修改core-site.xml配置文件内容
<property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description>
</property>
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value>
</property># 进入hdfs-site.xml配置文件
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml# 修改hdfs-site.xml配置文件内容
<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property><name>dfs.namenode.secondary.http-address</name><value>master:50090</value>
</property>
5、MapReduce配置
# 进入mapred-env.sh文件
sudo vim /usr/local/hadoop/etc/hadoop/mapred-env.sh# 修改mapred-env.sh配置文件
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA# 进入mapred-site.xml文件
sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml# 修改mapred-site.xml配置文件
<property><name>mapreduce.framework.name</name><value>yarn</value><discription>MapReduce的运行框架运行为YARN</discription>
</property>
<property><name>mapreduce.jobhistory.address</name><value>master:10020</value><discription>历史服务器通讯端口为master:10020</discription>
</property>
<property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value><discription>历史服务器端口为master的19888</discription>
</property>
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
6、YARN配置
# 进入yarn.sh配置文件
sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh# 修改yarn.sh配置文件
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs# 进入yarn-site.xml配置文件
sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml# 修改yarn-site.xml配置文件
<property><name>yarn.resourcemanager.hostname</name><value>master</value><discription>ResourceManager设置在master节点</discription>
</property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><discription>为MapReduce程序开启Shuffle服务</discription>
</property>
7、修改workers
# 修改workers
sudo vim /usr/local/hadoop/etc/hadoop/workers
# 写入配置文件
删除localhost
# 写入子节点主机名
master
node1
node2
node3
8、master操作
# 将配置文件复制到其他节点
sudo scp -r /usr/local/hadoop hxy@node1:~/
sudo scp -r /usr/local/hadoop hxy@node2:~/
sudo scp -r /usr/local/hadoop hxy@node3:~/
sudo scp ~/.bashrc hxy@node1:~/
sudo scp ~/.bashrc hxy@node2:~/
sudo scp ~/.bashrc hxy@node3:~/
9、子节点服务器操作
# 将目录移动到/usr/local
sudo mv ~/hadoop /usr/local
# 修改权限
sudo chown -R hxy:hxy /usr/local/hadoop
# 使配置文件生效
source ~/.bashrc
10、集群格式化
# 格式化HDFS
hdfs namenode -format
11、运行Hadoop
# 开启hdfs进程
start-dfs.sh# 开启yarn进程
start-yarn.sh# 查看进程信息
jps# 关闭进程
stop-dfs.sh# 关闭yarn进程
stop-yarn.sh# 启动历史服务器
mapred --daemon start historyserver# 关闭历史服务器
mapred --daemon stop historyserver
重新格式化
# 删掉文件
cd /usr/local/hadoop
rm -r dfs/ logs/ tmp/# 关掉进程
stop-dfs.sh
stop-yarn.sh# 格式化
hdfs namenode -format
三、HDFS(分布式文件系统)
1、创建目录
hadoop fs -mkdir -p /24303016/hxy
2、查看目录
hadoop fs -ls -lh /
3、上传文件
hadoop fs -put -fp linux文件 /目标目录
4、下载文件
hadoop fs -get /hdfs文件 linux目录
5、查看文件
hadoop fs -cat /douban.csv
hadoop fs -cat /douban.csv |more # 分页查看
6、复制文件
hadoop fs -cp /douabn.csv /douban2.csv
7、追加数据到HDFS文件
hadoop fs -appendToFile 本地文件内容 HDFS文件
8、移动文件
hadoop fs -mv /移动文件或目录 /目标目录
9、删除文件
hadoop fs -rm -r /删除的目标文件或目录
10、查看文件概况
hdfs fsck /243030316/hxy/douban.csv -files -blocks -locations
词频统计
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount hdfs://master:9000/input/ hdfs://master:9000/output/wc
四、Hive安装搭建
1、Mysql环境搭建
# 安装Mysql
sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev# 修改Myql密码
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';# 设置远程登录密码
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
ALTER USER 'root'@'%' IDENTIFIED BY '123456';# 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;# 刷新权限
FLUSH PRIVILEGES;# 修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 将bind-address=127.0.0.1注释# 重启Mysql服务
sudo service mysql restart
2、下载Hive
Hive下载网址:https://hive.apache.org/general/downloads/
Mysql驱动下载:https://downloads.mysql.com/archives/c-j/
3、解压安装Hive
# 解压
sudo tar -zxf apache-hive-4.0.1-bin.tar.gz -C /usr/local# 修改文件名字
cd /usr/local
sudo mv apache-hive-4.0.1-bin hive# 修改文件权限
sudo chown -R hxy /usr/local/hive
4、修改Hive环境变量
# 进入配置文件
sudo vim ~/.bashrc# 修改配置文件
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin# 使配置文件生效
source ~/.bashrc# 查看是否配置成功
hive version
5、Mysql驱动配置
# 将驱动移动到hive的lib目录下
mv mysql-connector-j-8.0.33.jar /usr/local/hive/lib/
6、Hive配置
# 进入core-site.xml配置文件
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml# 修改core-site.xml文件配置
<property><name>hadoop.proxyuser.hxy.groups</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.hxy.hosts</name><value>*</value>
</property># 创建hive-env.sh文件
cd /usr/local/hive/conf
mv hive-env.sh.template hive-env.sh# 进入hive-env.sh文件
vim hive-env.sh# 修改hive-env.sh文件配置
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop# 创建hive-site.xml文件
cd /usr/local/hive/conf
mv hive-default.xml.template ./hive-site.xml# 进入hive-site.xml文件
vim ./hive-site.xml# 修改hive-site.xml文件配置
<property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value>
</property>
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&</value>
</property>
<property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value>
</property>
<property><name>javax.jdo.option.ConnectionUserName</name><value>root</value>
</property>
<property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value>
</property># 修改hive-site.xml文件配置
# 将包含system:java.io.tmpdir的配置项的值全部替换位/usr/local/hive/tmp 一共有4处
7、启动Hive
# 初始化Hive
schematool -dbType mysql -initSchema# 创建Hive日志文件
mkdir /usr/local/hive/logs
touch metastore.log
touch hiveserver2.log# 后台启动元数据管理服务
cd /usr/local/hive
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &# 启动远程服务
nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &# 连接Hive
beeline -u jdbc:hive2://master:10000 -n hxy
五、Hive
1、创建数据库
create database test;
2、显示数据库信息
desc database test;
3、使用数据库
use test;
4、删除数据库
drop database test cascade;
5、显示表
show tables;
6、删除表
drop table test;
7、查看表类型
desc formatted test;
8、创建内部表
内部表数据存储位置是由hive.metastore.warehouse决定的,删除内部表会直接删除元数据和存储数据。
create table students(id int,name string, age int,sex string);
9、创建外部表
外部表数据可以在任何位置,通过location关键字指定。删除外部表只会删除元数据,不会删除数据本身。
create external table douban(author string,level string,publish_date string,info string)row format delimited fields terminated by ',' location '/tmp/douban';
10、内部表和外部表互相转换
# 内部表转成外部表
alter table test set tblproperties('EXTERNAL_TABLE'='TRUE');# 外部表转成内部表
alter table test set tblproperties('EXTERNAL_TABLE'='FALSE');
11、数据导入
如果数据在linux本地中,需要加关键字local,如果在HDFS中,则不需要。
load data local inpath '/home/hxy/douban.csv' into table douban;
将表的数据查询出来插入到另一个表。其中into表示追加,overwrite表示覆盖。
insert into table douban2 select * from douban;
12、数据导出
将数据导出到本地linux需要将local关键字,导出到HDFS不需要。
# 使用默认列的分隔符
insert overwrite local directory '/home/hxy/douban' select * from douban;# 指定列的分隔符
insert overwrite local directory '/home/hxy/douban' row format delimited fields terminated by ',' select * from douban;
13、创建分区表
分区就是将表拆分到不同的文件夹进行存储,可以极大的提高某些特定场景下Hive的操作性能
# 创建单分区表
create table score(id int, name string,math int,english int)partitioned by(month string)row format delimited fields terminated by '\t';# 创建多分区表
create table score2(id int, name string,math int,english int)partitioned by(year string,month string)row format delimited fields terminated by '\t';
14、分区表数据导入
load data local inpath '/home/hxy/score.txt' into table score2 partition(year='2024',month='10');
15、创建分桶表
分桶就是将表拆分到固定数量的不同文件进行存储,可以减少被操作的数据量,从而提高性能。如(分组,过滤等)
分桶的原理:使用Hash取模运算,确认当前数据去哪一个桶
# 开启分桶的自动优化
set hive.enforce.bucketing=true;# 创建分桶表
create table score3(id int,name string,math int,english int) clustered by(id) into 3 buckets row format delimited fields terminated by '\t';
16、分桶表数据导入
insert overwrite table score3 select * from score2 cluster by(id);
17、表重命名
alter table old_name rename to new_name;
18、添加表分区
alter table score partition (year='2019',month='01',day='10');
19、修改分区值
alter table score partition (year='2019',month='01',day='10') rename to partition (year='2024',month='05',day='18');
20、删除分区
删除分区只是删除元数据中的值,但是HDFS中的分区文件还会存在
alter table score drop partition((year='2019',month='01',day='10');
21、添加新列
alter table score add columns(chinese int,history int);
22、修改列名
只能修改列名,不能修改类型
alter table score change oldname newname int;
23、清空表数据
truncate table course;
24、array数组类型
collection items terminated by指定数组用什么做分隔符
# 创建habby为数组类型
create table test(name string,habby array<string>)row format delimited fields terminated by '\t' collection items terminated by ',';# 统计array类型的元素个数
select name,size(habby) from test;
25、map映射类型
map keys terminated 指定key和value之间用什么做分隔符
# 创建members为映射类型
create table test(name string,members map<string,string>)row format delimited fields terminated by '\t' collection items terminated by '#' map keys terminated ':';# 查询具体的值
select name,members['mom'] from test;# 取出map全部的key
select map_keys(members) from test;# 取出map全部的value
select map_values(members) from test;
26、struct结构类型
struct是一个复合类型,可以在一个列中存入多个子列,每个子列允许设置类型和名称
collection items terminated by 表明struct之间用什么分隔。
# 创建info为结构类型
create table test(name string,members struct<name:string,age:int>)row format delimited fields terminated by '\t' collection items terminated by ':';# 查询struct的子列
select name,ino.age from test;
27、基础查询
# 查询全表数据
select * from test;# 查询表有多少数据
select count(*) from test;# 条件查询
select * from score where name='黄小耶'# 模糊查询
select * from score where name like '黄%'# 排序
select * from score order by id desc;#分组聚合
select sum(english) from score group by name;# 子查询
select avg(english) as avg_english from score group by name having avg_english<80;
28、联合查询
union用于将多个select语句的结果组合成单个结果集,每个select语句返回列的数量和名称必须相同。
union默认做去重操作,加上all代表不去重。
# 默认去重
select id,name from score union select id,name from score;# 不去重
select id,name from score union all select id,name from score;
29、随机抽样
# 分桶抽样:基于行从3个桶随机抽一份
select * from score2 tablesample(bucket 1 out of 3 on rand());# 分桶抽样:基于列从3个桶随机抽一份
select * from score2 tablesample(bucket 1 out of 3 on year);# 数据块抽样:按条数抽数据,由前向后抽取数据
select * from score2 tablesample(60 rows);# 数据块抽样:按百分比抽取数据,由前向后抽取数据
select * from score2 tablesample(10 percent);# 数据块抽样:按数据大小(K、M、G,表示KB、MB、GB)抽取数据,由前向后抽取数据
select * from score2 tablesample(3K);
30、虚拟列
# input__file__name显示数据行所在的具体文件
select id,name,input__file__name from score;# block__offset__inside__file显示数据行所在的文件的偏移量
select id,name,block__offset__inside__file from score;
六、HBase安装搭建
1、下载Hbase
HBase下载网址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.18/
2、解压安装HBase
# 解压HBase
sudo tar -zxvf hbase-2.4.18-bin.tar.gz -C /usr/local# 重命名
sudo mv /usr/local/hbase-2.4.18 /usr/local/hbase# 修改文件权限
sudo chown -R hxy /usr/local/hbase
3、配置Hbase环境变量
# 进入环境变量文件
sudo vim ~/.bashrc#配置内容
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin# 使配置文件生效
source ~/.bashrc# 查看是否配置成功
hbase version
4、Hbase配置
# 进入hbase-env.sh文件
sudo vim /usr/local/hbase/conf/hbase-env.sh# 写入配置内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
export HBASE_MANAGES_ZK=true# 进入hbase-site.xml文件
sudo vim /usr/local/hbase/conf/hbase-site.xml# 写入配置内容
<property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value>
</property>
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>
<property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value>
</property>
<property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value>
</property># 进入regionservers文件
sudo vim /usr/local/hbase/conf/regionservers删除localhost
# 添加如下内容
node1
node2
node3
5、复制文件到节点服务器
# 复制hbase文件
sudo scp -r /usr/local/hbase hxy@node1:~/
sudo scp -r /usr/local/hbase hxy@node2:~/
sudo scp -r /usr/local/hbase hxy@node3:~/
6、子节点操作
# 移动文件
sudo mv ~/hbase /usr/local#修改权限
sudo chown -R hxy:hxy /usr/local/hbase
7、启动Hbase
start-hbase.sh
8、打开Hbase
hbase shell
ocal/hbase/conf/hbase-site.xml
写入配置内容
hbase.rootdir hdfs://master:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum node1,node2,node3 hbase.unsafe.stream.capability.enforce false进入regionservers文件
sudo vim /usr/local/hbase/conf/regionservers
删除localhost
添加如下内容
node1
node2
node3
#### 5、复制文件到节点服务器```shell
# 复制hbase文件
sudo scp -r /usr/local/hbase hxy@node1:~/
sudo scp -r /usr/local/hbase hxy@node2:~/
sudo scp -r /usr/local/hbase hxy@node3:~/
6、子节点操作
# 移动文件
sudo mv ~/hbase /usr/local#修改权限
sudo chown -R hxy:hxy /usr/local/hbase
7、启动Hbase
start-hbase.sh
8、打开Hbase
hbase shell
相关文章:
大数据相关操作
大数据相关操作 一、环境配置 1、修改主机名 #修改主机名 hostnamectl set-hostname master2、固定IP地址 # 进入修改 sudo vim /etc/netplan/01-network-manager-all.yaml# 修改配置文件 # Let NetworkManager manage all devices on this system network:version: 2rend…...
谷歌宣布推出 Android 的新安全功能,以防止诈骗和盗窃
在上周二的 Android Show 上,也就是Google I/O 开发者大会之前,谷歌宣布了 Android 的全新安全和隐私功能。这些新功能包括对通话、屏幕共享、消息、设备访问和系统级权限的全新保护。谷歌希望通过这些功能保护用户免遭诈骗,在设备被盗或被攻…...
WSL虚拟机整体迁移教程(如何将WSL从C盘迁移到其他盘)
文章目录 WSL虚拟机迁移教程一、查看当前主机的子系统二、导出 WSL 子系统三、将打包好的文件发送给另一个人四、在另一台机器导入并恢复子系统五、附加命令六、注意事项和导出文件信息6.1 注意事项6.2 导出文件信息使用 wsl --export 命令导出整个 WSL 子系统时,它…...
汽车区域电子电气架构(Zonal E/E)的统一
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界…...
开源一个记账软件,支持docker一键部署
欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 开源一个记账软件,支持docker一键部署 项目简介功能特性技术栈快速开始环境要求运行步…...
新能源汽车焊接智能节气阀
在新能源汽车产业迅猛发展的浪潮中,制造工艺的优劣直接关系到车辆的性能、安全与市场竞争力。焊接,作为新能源汽车生产流程里的关键一环,无论是构建车身框架,还是连接电池模组,其质量的好坏都起着决定性作用。而在焊接…...
React 第四十四节Router中 usefetcher的使用详解及注意事项
前言 useFetcher 是 React Router 中一个强大的钩子,用于在不触发页面导航的情况下执行数据加载(GET)或提交(POST)。 一、useFetcher 应用场景: 1、后台数据预加载(如鼠标悬停时加载数据&…...
33、魔法防御术——React 19 安全攻防实战
一、奥术护盾(基础防御) 1. 敏感数据加密术 // cryptoUtils.js - 数据加密工具export const encrypt (data) > {// 实际项目应使用Web Crypto API或crypto-jsreturn btoa(encodeURIComponent(data));};export const decrypt (data) > {try {…...
NVM 安装与配置指南
简介 Node Version Manager(NVM)是一个常用的 Node.js 版本管理工具,可用于在开发过程中方便地切换不同版本的 Node.js。通过 NVM,用户可以根据项目需求选择不同的 Node.js 版本,而无需手动安装和卸载多个版本的 Node…...
SpringMVC04所有注解按照使用位置划分| 按照使用层级划分(业务层、视图层、控制层)
目录 一、所有注解按照使用位置划分(类、方法、参数) 1. 类级别注解 2. 方法级别注解 3. 参数级别注解 4. 字段/返回值注解 二、按照使用层级划分(业务层、视图层、控制层) 1、控制层(Controller Layer&#x…...
【数据库】-1 mysql 的安装
文章目录 1、mysql数据库1.1 mysql数据库的简要介绍 2、mysql数据库的安装2.1 centos安装2.2 ubuntu安装 1、mysql数据库 1.1 mysql数据库的简要介绍 MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前…...
MySQL与Redis一致性问题分析
一、一致性问题概述 1.1 什么是一致性问题? 在数据库-缓存架构中,当MySQL中的数据(最新值)与Redis缓存中的数据(缓存旧值)出现差异时,由于程序总是优先读取Redis缓存,就会导致应用…...
Xshell传输文件
新建文件 点击新建 完善主机地址 然后输入我们的远端服务器的SSH协议 一般的是这样的ssh -p 44562 rootregion-1.autodl.com 由于Xshell比较特殊我们输入ssh rootregion-1.autodl.com 44562这样的形式 然后输入服务器的密码即可...
怎样用 esProc 为大主子表关联提速
类似订单和明细表这样的主子表关联比较常见,在 SQL 中,这种关联用 JOIN 实现,在两个表都很大的情况下,常常出现计算速度非常慢的现象。 如果预先将主子表都按照主键有序存储,就可以使用归并算法实现关联。这种算法只需…...
打卡day31
文件的规范拆分和写法 知识点回顾 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。 导入依赖库 # 忽视警告 import warnings warn…...
编译原理的部分概念
解释程序:边解释边执行:不断读取源程序的语句,解释语句,读取此语句需要的数据,根据执行结果读取下一条语句,继续解释执行,直到返回结果。 编译程序:将源程序完整地转换成机器语言程…...
Java中字符串(String类)的常用方法
以下是Java中字符串(String类)的常用方法分类详解,包含核心方法说明和示例代码: 一、字符串基础信息 方法说明示例输出length()返回字符串长度"Hello".length()5isEmpty()判断字符串是否为空(长度是否为0&a…...
什么是 ERP,中国企业如何科学应用 ERP
中国企业在引入 ERP 系统过程中,常因盲目跟风大型企业选型、忽视自身业务适配性,导致系统功能过剩、实施成本高企、员工接受度低等问题,最终造成项目成功率不足 10%。因此,理性认知 ERP 的价值定位与本土化实施路径,成…...
使用SQLite Expert个人版VACUUM功能修复数据库
使用SQLite Expert个人版VACUUM功能修复数据库 一、SQLite Expert工具简介 SQLite Expert 是一款功能强大的SQLite数据库管理工具,分为免费的个人版(Personal Edition)和收费的专业版(Professional Edition)。其核心功…...
同源策略深度防御指南:CSP 高级应用与企业微信全场景适配(含 report-uri 实战)
一、CSP 核心指令权威解析与企业微信适配 内容安全策略(CSP)通过Content-Security-Policy响应头实现资源加载的细粒度控制,其核心指令与企业微信场景强相关: 1.1 frame-ancestors:iframe 嵌入源控制 权威规范&#…...
【AGI】大模型微调技术-四大微调框架
【AGI】大模型微调技术-四大微调框架 (1)微调基础概念介绍1.1 微调基本概念1.2 全量微调与高效微调1.3 模型微调的优劣势分析1.4 高效微调与LoRA、QLoRA (2)高效微调的应用场景(3)流微调工具介绍3.1 unslot…...
小白编程学习之巧解「消失的数字」
一、引言:一个看似简单的「找不同」问题 今天遇到一道有趣的算法题:给定一个含 n 个整数的数组 nums,其中每个元素都在 [1, n] 范围内,要求找出所有在 [1, n] 中但未出现在数组中的数字。 这让我想起小时候玩的「找错题」游戏 —…...
在 Git 中添加子模块(submodule)的详细步骤
在 Git 中添加子模块(submodule)的详细步骤如下: 1. 添加子模块 命令格式: git submodule add <仓库URL> [目标路径]仓库URL:子模块的 Git 仓库地址(HTTP/SSH 均可)。目标路径ÿ…...
瑞萨单片机笔记
1.CS for CC map文件中显示变量地址 Link Option->List->Output Symbol information 2.FDL库函数 pfdl_status_t R_FDL_Write(pfdl_u16 index, __near pfdl_u08* buffer, pfdl_u16 bytecount) pfdl_status_t R_FDL_Read(pfdl_u16 index, __near pfdl_u08* buffer, pfdl_…...
单片机复用功能重映射Remap功能
目录 一、查看“DS5319 stm32f10x中等密度mcu数据手册(英文)”手册 二、查看“RM0008 STM32F10xxx参考手册(中文)”手册 三、重映射(Remap)功能程序编写 自己学习过程中容易遗忘的知识点,记录…...
小白入门FPGA设计,如何快速学习?
很多刚入门的小伙伴,初次听说FPGA(现场可编程门阵列),脑子里只有一个字:玄! 什么“时序逻辑”“Verilog”“Vivado”,仿佛一夜之间掉进了电子黑魔法的深坑。 但真相是—— FPGA,其实…...
友思特应用 | LCD显示屏等玻璃行业的OCT检测应用
导读 光学相干层析成像(OCT)是一种非侵入式光学成像方法,提供微米尺度的空间分辨率,能够生成内部结构截面图像。自20世纪90年代初发明第一台OCT以来,它在眼科领域得到了广泛应用,并成为临床诊断的黄金标准之一。除了在生物医学领…...
Python的sys模块:系统交互的关键纽带
Python的sys模块:系统交互的关键纽带 对话实录 小白:(挠头)我知道 Python 能做很多事,可怎么让它和计算机系统‘交流’呢,比如获取系统信息、处理命令行参数? 专家:(微…...
若依项目集成sentinel、seata和shardingSphere
集成组件包括MySQL分库分表及读写分离、seata以及Sentinel 若依项目文档连接 代码下载地址 需要结合ruoyi代码配合看,前提是熟悉基本代码结构,熟悉feign调用和基础网关配置等。 采用的版本信息 <java.version>1.8</java.version> <spr…...
张 推进对话式心理治疗:SOULSPEAK的聊天机器人
SOULSPEAK的聊天机器人 利用大语言模型(LLM)来提供低成本的心理治疗服务,旨在解决传统心理咨询在隐私、成本和可及性方面的不足。以下是核心内容的通俗解读: 1. 研究背景:传统心理治疗的困境 问题:全球心理健康问题日益严重(如焦虑、抑郁人数激增),但传统心理咨询受…...
java中的Filter使用详解
Filter(过滤器)是 Java Web 开发的核心组件之一,用于在请求到达 Servlet 或响应返回客户端之前进行拦截和处理。以下是其核心功能、使用方法和实际场景的详细解析: 一、Filter 的作用与原理 核心作用 Filter 充当请求与响应之间的…...
BERT 作为Transformer的Encoder 为什么采用可学习的位置编码
摘要 BERT 在位置编码上与原始 Transformer 论文中的 sin/cos 公式不同,选择了可学习(learned)的位置嵌入方案。本文将从 Transformer 原始位置编码选项入手,分析 BERT 选择 learned positional embeddings 的四大核心原因&#x…...
Vue百日学习计划Day43-45天详细计划-Gemini版
Day 43: Composable 函数基础与抽取简单逻辑 (~3 小时) 本日目标: 理解 Composable 函数的概念、优势,并学会如何将简单的、无状态的逻辑抽取为 Composable。所需资源: Vue 3 官方文档 (组合式函数): https://cn.vuejs.org/guide/reusability/composables.html 学…...
Kotlin 协程 (二)
Kotlin 协程提供了丰富的功能,能够高效地处理并发和异步任务。以下是对 Kotlin 协程中常见概念和功能的详细讲解,包括它们的定义、作用、使用场景以及最佳实践。 1. 协程核心概念 1.1 CoroutineScope 定义:CoroutineScope 是协程作用域的抽…...
Linux 下 rsync 工具详解与实用指南
Linux 下 rsync 工具详解与实用指南 一、什么是 rsync? rsync(remote sync)是 Linux/Unix 系统下常用的数据同步和备份工具。它可以高效地在本地与远程主机之间同步文件和目录,支持增量同步、断点续传、权限保留等功能ÿ…...
2025年医美行业报告60+份汇总解读 | 附 PDF 下载
原文链接:https://tecdat.cn/?p42122 医美行业在消费升级与技术迭代的双重驱动下,已从边缘市场逐步走向主流。数据显示,2024 年中国医美市场规模突破 3000 亿元,年复合增长率达 15%,但行业仍面临正品率不足、区域发展…...
汉得集星獭1.8.0正式发布,高效集成再赋能!
汉得企业级系统集成平台 (中文名集星獭,英文名JeeStar)1.8.0版本于2025年4月正式发布 。 集星獭是一款一站式多系统集成、多云集成、多端集成、多协议集成、多设备集成、数据集成、页面集成的全域集成解决方案产品。 此次发布主要聚焦于以下…...
一文深度解析:Pump 与 PumpSwap 的协议机制与技术差异
在 Solana 链上,Pump.fun 和其延伸产品 PumpSwap 构成了 meme coin 发行与流通的两大核心场景。从初期的游戏化发行模型,到后续的自动迁移与交易市场,Pump 系列协议正在推动 meme coin 从“爆发性投机”走向“协议化运营”。本文将从底层逻辑…...
数据库实验——备份与恢复
一、目的(本次实验所涉及并要求掌握的知识点) 1.掌握SQL server的备份与恢复 二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析) 验证性实验 实验1:在资源管理器中建立备份设备实验 …...
抓包分析工具与流量监控软件
目录 一、抓包分析工具:定位问题的“放大镜” 1.1 工作原理简述 1.2 主流工具盘点 1.3 抓包的实战应用 二、流量监控软件:网络全景的“雷达系统” 2.1 功能特征 2.2 常用工具概览 2.3 实战应用场景 五、结语:深入可见,安…...
Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程
Go 实现支持多层复杂表头的 Excel 导出工具 目录 项目介绍依赖说明核心结构设计如何支持多层表头完整使用示例总结与扩展 项目介绍 在实际业务系统中,Excel 文件导出是一项常见功能,尤其是报表类需求中常见的复杂多级表头,常规表格组件往…...
【算法】定长滑动窗口5.20
定长滑动窗口算法: 算法思路 滑动窗口遍历字符串:窗口大小为 k ,遍历字符串每个字符,维护窗口内元音字母数量。 统计窗口内元音:当字符是元音(a/e/i/o/u)时,计数器 vowel 加 1。…...
Java操作Elasticsearch 之 [Java High Level REST Clientedit]
<a name"VbjtD"></a> 1. 简述 Elasticsearch 是基于 Lucene 开发的一个分布式全文检索框架,向 Elasticsearch 中存储和从 Elasticsearch 中查询,格式是json。向 Elasticsearch 中存储数据,其实就是向 es 中的 index 下…...
数据集划分与格式转换:从原始数据到模型训练的关键步骤
在计算机视觉项目中,数据集的合理划分和格式转换是实现高效模型训练的基础。本文将详细介绍如何将图片和标注数据按比例切分为训练集和测试集,以及常见的数据格式转换方法,包括 JSON 转 YOLO 格式和 XML 转 TXT 格式。 一、将图片和标注数据…...
MinerU
简介 MinerU 是一款功能全面的文档处理系统,旨在将 PDF 和其他文档格式转换为机器可读的格式,例如 Markdown 和 JSON。该系统专注于在保留文档结构的同时,准确提取文档内容,处理复杂的布局,并转换公式和表格等特殊元素…...
Vue百日学习计划Day46-48天详细计划-Gemini版
Day 46: <KeepAlive> - 组件缓存与优化 (~3 小时) 本日目标: 理解 <KeepAlive> 的作用,学会如何使用它来缓存组件实例,从而优化应用性能和用户体验。所需资源: Vue 3 官方文档 (<KeepAlive>): https://cn.vuejs.org/guide/built-ins/…...
微软的 Windows Linux 子系统现已开源
微软宣布其 Windows Linux 子系统 (WSL) 开源,开放代码供社区成员贡献。自近九年前推出适用于 Windows 10 的 WSL 以来,微软多年来一直致力于开源这项在 Windows 中启用 Linux 环境的功能。 Windows 首席执行官 Pavan Davuluri 表示:“这是开…...
Axure中使用动态面板实现图标拖动交换位置
要在Axure中实现图标拖动交换位置的功能,可以通过动态面板结合交互事件来实现。 实现步骤 准备图标元素 将每个图标转换为动态面板(方便拖动和交互)。 设置拖动交互 选中图标动态面板 → 添加“拖动时”交互 → 选择“移动”当前动态面板&am…...
深入浅出:Spring Cloud Gateway 扩展点实践指南
文章目录 前言一、为什么需要扩展 Spring Cloud Gateway?二、Spring Cloud Gateway 核心扩展点三、扩展点实战:代码与配置详解3.1 全局过滤器(GlobalFilter)3.2 路由过滤器(GatewayFilter)2.3 自定义路由断…...
SCAU18923--二叉树的直径
18923 二叉树的直径 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC Description 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点…...