spark-sql配置教程
1.前期准备
(1)首先要把hadoop集群,hive和spark等配置好
hadoop集群,hive的配置可以看看这个博主写的博客
大数据_蓝净云的博客-CSDN博客
或者看看黑马程序员的视频
黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目全套一网打尽_哔哩哔哩_bilibili
对于博主本人,有关hadoop集群和hive的配置可以直接看这篇文章
黑马程序员hadoop三件套(hdfs,Mapreduce,yarn)的安装配置以及hive的安装配置-CSDN博客


spark配置参考文章:
spark的安装配置_spark基本配置-CSDN博客
(2)最好把Finalshell也下载好,具体下载教程详见如下文章:
保姆级教程下载finalshell以及连接云服务器基础的使用教程_finalshell下载安装-CSDN博客
2.配置spark-sql
(1)首先在node1登录root用户,接着进入hive安装目录conf目录,修改hive-site.xml
cd /export/server/apache-hive-3.1.3-bin/conf/
vi hive-site.xml
添加如下内容:
<property>
<name>hive.spark.client.jar</name>
<value>${SPARK_HOME}/lib/spark-assembly-*.jar</value>
</property>
<property><name>hive.spark.client.jar</name><value>${SPARK_HOME}/lib/spark-assembly-*.jar</value>
</property>
(2)拷贝hive-site.xml到/export/server/spark-3.4.4-bin-hadoop3/conf,同时分发到node2,node3节点
cp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml /export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
(3)拷贝MYSQL驱动到/export/server/spark-3.4.4-bin-hadoop3/jars/,同时分发到node2,node3节点
cp /export/server/apache-hive-3.1.3-bin/lib/mysql-connector-java-5.1.34.jar /export/server/spark-3.4.4-bin-hadoop3/jars/
scp /export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar node2:/export/server/spark-3.4.4-bin-hadoop3/jars/
scp /export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar node3:/export/server/spark-3.4.4-bin-hadoop3/jars/
(4)在node1的/export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh 文件中配置 MySQL 驱动,同时分发到node2,node3节点
vi /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh
添加如下内容:
export SPARK_CLASSPATH=/export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar
export SPARK_CLASSPATH=/export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar
分发
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
(5)在node1修改日志级别,同时分发到node2,node3节点
cp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties.template /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties
vi /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties
把以下这部分注释
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = console
注释后效果如下
# rootLogger.level = info
# rootLogger.appenderRef.stdout.ref = console
再添加以下内容:
rootLogger.level = warn
rootLogger.appenderRef.console.ref = console
rootLogger.level = warn
rootLogger.appenderRef.console.ref = console
再分发
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
3.体验spark-sql
(1)首先启动该启动的,在node1(此时是root用户)直接复制以下命令到命令行运行即可
su - hadoop
start-dfs.sh
start-yarn.sh
nohup /export/server/hive/bin/hive --service metastore >> /export/server/hive/logs/metastore.log 2>&1 &
cd /export/server/spark-3.4.4-bin-hadoop3/sbin
./start-all.sh
jps
spark-sql
效果如下
[root@node1 ~]# su - hadoop
Last login: Wed Dec 4 20:52:45 CST 2024 on pts/0
[hadoop@node1 ~]$ start-dfs.sh
Starting namenodes on [node1]
Starting datanodes
Starting secondary namenodes [node1]
[hadoop@node1 ~]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers
[hadoop@node1 ~]$ nohup /export/server/hive/bin/hive --service metastore >> /export/server/hive/logs/metastore.log 2>&1 &
[1] 39039
[hadoop@node1 ~]$ cd /export/server/spark-3.4.4-bin-hadoop3/sbin
[hadoop@node1 sbin]$ ./start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.out
node2: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.out
node3: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node3.out
[hadoop@node1 sbin]$ jps
39952 Jps
37553 SecondaryNameNode
38978 WebAppProxyServer
36902 NameNode
39127 Master
39143 VersionInfo
38537 NodeManager
37118 DataNode
38335 ResourceManager
[hadoop@node1 sbin]$ spark-sql
24/12/04 22:20:18 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
24/12/04 22:20:20 WARN HiveConf: HiveConf of name hive.metastore.event.db.notification.api.auth does not exist
24/12/04 22:20:20 WARN HiveConf: HiveConf of name hive.spark.client.jar does not exist
Spark master: spark://node1:7077, Application Id: app-20241204222029-0000
spark-sql (default)> use demo1;

(2)在spark-sql中尝试一下写代码
随便选择一个数据库使用吧
use demo1;
-- 创建一个新表
CREATE TABLE employees (id INT,name STRING,salary DOUBLE
);
-- 插入单条记录
INSERT INTO employees VALUES (4, 'Alice', 1300);
-- 插入多条记录
INSERT INTO employees VALUES
(5, 'Bob', 1400),
(6, 'Charlie', 1100);
-- 查询表中的所有数据
SELECT * FROM employees;
-- 删除表
DROP TABLE IF EXISTS employees;
效果如下
spark-sql (default)> use demo1;
Time taken: 9.682 seconds
spark-sql (demo1)> -- 创建一个新表
spark-sql (demo1)> CREATE TABLE employees (> id INT,> name STRING,> salary DOUBLE> );
24/12/04 22:22:50 WARN ResolveSessionCatalog: A Hive serde table will be created as there is no table provider specified. You can set spark.sql.legacy.createHiveTableByDefault to false so that native data source table will be created instead.
[TABLE_OR_VIEW_ALREADY_EXISTS] Cannot create table or view `demo1`.`employees` because it already exists.
Choose a different name, drop or replace the existing object, or add the IF NOT EXISTS clause to tolerate pre-existing objects.
spark-sql (demo1)> -- 删除表
spark-sql (demo1)> DROP TABLE IF EXISTS employees;
Time taken: 4.462 seconds
spark-sql (demo1)> -- 创建一个新表
spark-sql (demo1)> CREATE TABLE employees (> id INT,> name STRING,> salary DOUBLE> );
24/12/04 22:23:29 WARN ResolveSessionCatalog: A Hive serde table will be created as there is no table provider specified. You can set spark.sql.legacy.createHiveTableByDefault to false so that native data source table will be created instead.
24/12/04 22:23:29 WARN SessionState: METASTORE_FILTER_HOOK will be ignored, since hive.security.authorization.manager is set to instance of HiveAuthorizerFactory.
Time taken: 1.541 seconds
spark-sql (demo1)> -- 插入单条记录
spark-sql (demo1)> INSERT INTO employees VALUES (4, 'Alice', 1300);
Time taken: 15.817 seconds
spark-sql (demo1)> -- 插入多条记录
spark-sql (demo1)> INSERT INTO employees VALUES> (5, 'Bob', 1400),> (6, 'Charlie', 1100);
Time taken: 10.018 seconds
spark-sql (demo1)> -- 查询表中的所有数据
spark-sql (demo1)> SELECT * FROM employees;
4 Alice 1300.0
5 Bob 1400.0
6 Charlie 1100.0
Time taken: 5.835 seconds, Fetched 3 row(s)
spark-sql (demo1)> -- 删除表
spark-sql (demo1)> DROP TABLE IF EXISTS employees;
Time taken: 0.784 seconds
spark-sql (demo1)>

到这里,基本上就已经成功了!
(3)关闭所有进程代码
先ctrl+C退出spark-sql
cd /export/server/spark-3.4.4-bin-hadoop3/sbin
./stop-all.sh
cd
stop-yarn.sh
stop-dfs.sh
jps
再通过kill -9 命令把RunJar进程给关闭掉
cd /export/server/spark-3.4.4-bin-hadoop3/sbin
./stop-all.sh
cd
stop-yarn.sh
stop-dfs.sh
jps
效果如下
Time taken: 0.784 seconds
spark-sql (demo1)> [hadoop@node1 sbin]$
[hadoop@node1 sbin]$ cd /export/server/spark-3.4.4-bin-hadoop3/sbin
[hadoop@node1 sbin]$ ./stop-all.sh
node2: stopping org.apache.spark.deploy.worker.Worker
node3: stopping org.apache.spark.deploy.worker.Worker
stopping org.apache.spark.deploy.master.Master
[hadoop@node1 sbin]$ cd
[hadoop@node1 ~]$ stop-yarn.sh
Stopping nodemanagers
Stopping resourcemanager
Stopping proxy server [node1]
[hadoop@node1 ~]$ stop-dfs.sh
Stopping namenodes on [node1]
Stopping datanodes
Stopping secondary namenodes [node1]
[hadoop@node1 ~]$ jps
64996 Jps
39039 RunJar
[hadoop@node1 ~]$ kill -9 39039
[hadoop@node1 ~]$ jps
66159 Jps
[1]+ Killed nohup /export/server/hive/bin/hive --service metastore >> /export/server/hive/logs/metastore.log 2>&1
[hadoop@node1 ~]$ jps
66219 Jps
[hadoop@node1 ~]$
4.参考文章
(1)黑马大数据学习笔记4-Hive部署和基本操作_黑马大数据 hive笔记-CSDN博客
(2)spark的安装配置_spark基本配置-CSDN博客
(3)Scala配置教程_统信 scala-CSDN博客
(4)大数据_蓝净云的博客-CSDN博客
5.补充笔记
(1)Hive 3.x版本通常会自动处理与Spark的集成
vi /export/server/apache-hive-3.1.3-bin/bin/hive 为什么我的hive文件里面没有这一行sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
在 Hive 3.x 版本中,`sparkAssemblyPath` 这一行并不是标准的配置项。因此,你在 `hive` 启动脚本中没有看到这行配置是完全正常的。
### 为什么没有这行配置?
1. **Hive 版本更新**:从 Hive 2.x 到 Hive 3.x 的版本更新中,Hive 与 Spark 的集成方式发生了变化。特别是对于 Spark 2.x 及之后的版本,Spark 与 Hive 的集成不再依赖于传统的 `spark-assembly` JAR 文件。`spark-assembly` 是 Spark 1.x 版本的一个重要文件,在 Spark 2.x 及以后版本中,Spark 被重新架构,`spark-assembly` 文件已被拆分为多个 JAR 文件,因此不再需要在 Hive 启动脚本中通过 `sparkAssemblyPath` 来加载它。
2. **Hive 集成 Spark 的方式**:在 Hive 3.x 版本中,Spark 通过 `hive-site.xml` 和其他配置文件进行集成,而不再需要在 Hive 启动脚本中显式地指定 Spark 的 JAR 文件路径。Spark 会根据环境变量或配置文件自动加载所需的 JAR 文件。
### 解决方案
如果你希望在 Hive 中集成 Spark,并且需要 Spark 的相关配置,可以通过以下方法进行配置:
1. **确保 Hive 配置文件正确**:
- 在 `hive-site.xml` 中设置与 Spark 相关的参数,尤其是 Spark SQL 引擎和 Metastore 配置。
2. **设置 `SPARK_HOME` 环境变量**:
- 确保你的 Hive 环境能够找到正确的 Spark 配置,可以通过设置环境变量 `SPARK_HOME` 来指定 Spark 的安装路径。
3. **添加 Spark JAR 到 `SPARK_CLASSPATH`**:
- 如果你确实需要手动指定 Spark 的 JAR 文件(例如,如果 Spark 配置文件没有被自动加载),可以在 `spark-env.sh` 中设置 `SPARK_CLASSPATH` 来指定 Spark JAR 文件的路径:
```bash
export SPARK_CLASSPATH=/path/to/spark/jars/*.jar
```
4. **启动 Hive 与 Spark 结合的服务**:
- 启动 Spark 时可以通过 `spark-submit` 或 `spark-sql` 来运行 Spark SQL 查询,并确保 Hive Metastore 已经启动。
### 如何检查 Hive 与 Spark 集成是否正常
1. **检查 Hive Metastore 是否正常运行**:
你可以通过命令查看 Hive Metastore 服务是否启动成功:
```bash
hive --service metastore
```
2. **测试 Hive 和 Spark 的连接**:
在 `spark-sql` 中执行以下命令,检查 Spark 能否正常读取 Hive 数据库:
```bash
spark-sql --conf spark.sql.warehouse.dir=/path/to/hive/warehouse
```
3. **查看 Spark 的 JAR 文件路径**:
确保 Spark 的所有必要 JAR 文件都在 Spark 的 `jars` 目录下,可以使用以下命令列出 Spark 中的所有 JAR 文件:
```bash
ls $SPARK_HOME/jars
```
### 总结
在 Hive 3.x 版本中,`sparkAssemblyPath` 的配置项已经不再使用,而是通过配置文件和环境变量来管理 Spark 与 Hive 的集成。如果你需要手动配置 Spark 的 JAR 文件路径,可以通过 `SPARK_CLASSPATH` 环境变量或者在 `spark-env.sh` 中指定。
(2)之前遇到的报错
[hadoop@node1 sbin]$ ./start-all.sh starting org.apache.spark.deploy.master.Master, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.out node3: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node3.out node2: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.out [hadoop@node1 sbin]$
您已经成功执行了 `./start-all.sh` 脚本来启动 Spark 集群。根据输出信息:
```
starting org.apache.spark.deploy.master.Master, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.out
node3: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node3.out
node2: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.out
```
说明:
- **Master** 节点已经启动,并且日志文件 `spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.out` 已经开始记录 Master 进程的日志。
- **Worker** 节点也在 `node2` 和 `node3` 上启动,并且相应的日志文件已经生成。
### 接下来您可以做以下几步来验证集群是否正常启动:
#### 1. **检查 Master 节点状态**
您可以通过访问 Spark Master UI 来检查 Master 节点是否正常启动。默认情况下,Spark Master 的 Web UI 运行在 `7077` 端口。您可以访问以下 URL:
```
http://node1:8080
```
这是 Spark Master 的 Web UI,您应该能看到集群状态、Worker 节点以及其他信息。如果页面能够正常加载且显示了 Worker 节点的状态(如 `node2` 和 `node3`),说明 Master 节点和 Worker 节点正常工作。
#### 2. **检查 Worker 节点状态**
您还可以检查各个 Worker 节点的 Web UI 来查看其状态。默认情况下,Spark Worker 的 Web UI 运行在 `8081` 端口。您可以访问以下 URL:
```
http://node2:8081
http://node3:8081
```
如果 Worker 节点也显示正常并且没有错误信息,那么说明 Worker 节点已成功加入集群。
#### 3. **查看日志文件**
查看日志文件以确保没有错误:
- **Master 节点日志**:
`/export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.out`
- **Worker 节点日志**:
`/export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.out`
`/export/server/spark-3.4.4-bin-hadoop3/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node3.out`
如果日志中有错误信息,可能需要根据日志内容进一步诊断问题。
#### 4. **提交 Spark 作业**
您还可以提交一个简单的 Spark 作业来测试集群是否正常运行。例如,您可以使用以下命令提交一个简单的 Spark 程序:
```bash
spark-submit --class org.apache.spark.examples.SparkPi --master spark://node1:7077 $SPARK_HOME/examples/jars/spark-examples_2.12-3.4.4.jar 10
```
这将提交一个计算 Pi 值的示例作业。如果集群正常,作业应该能够运行,并且您可以看到结果。
### 总结:
- 确认通过 Web UI (`http://node1:8080` 和 `http://node2:8081`, `http://node3:8081`) 检查 Spark 集群状态。
- 查看日志文件确保没有错误。
- 通过提交简单的作业来测试集群的可用性。
如果您在过程中遇到任何问题或有其他问题,随时可以向我询问!
(3)配置的txt参考
1.进入hive安装目录conf目录,修改hive-site.xml
cd /export/server/apache-hive-3.1.3-bin/conf/
vi hive-site.xml
添加如下内容:
<property>
<name>hive.spark.client.jar</name>
<value>${SPARK_HOME}/lib/spark-assembly-*.jar</value>
</property>
2.拷贝hive-site.xml到/export/server/spark-3.4.4-bin-hadoop3/conf
cp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml /export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/apache-hive-3.1.3-bin/conf/hive-site.xml node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
3.拷贝MYSQL驱动到/export/server/spark-3.4.4-bin-hadoop3/jars
cd /export/server/apache-hive-3.1.3-bin/lib/
cp /export/server/apache-hive-3.1.3-bin/lib/mysql-connector-java-5.1.34.jar /export/server/spark-3.4.4-bin-hadoop3/jars/
scp /export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar node2:/export/server/spark-3.4.4-bin-hadoop3/jars/
scp /export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar node3:/export/server/spark-3.4.4-bin-hadoop3/jars/
4.在所有节点/export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh 文件中配置 MySQL 驱动
vi /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh
添加如下内容:
export SPARK_CLASSPATH=/export/server/spark-3.4.4-bin-hadoop3/jars/mysql-connector-java-5.1.34.jar
分发
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/spark-env.sh node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
5.修改日志级别,在各节点:
cp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties.template /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties
vi /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties
在文件中找到log4j2.rootCategory的设置,并将其修改为:
原来的
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = console
把原来的那个注释
再添加以下内容:
rootLogger.level = warn
rootLogger.appenderRef.console.ref = console
再分发
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node2:/export/server/spark-3.4.4-bin-hadoop3/conf/
scp /export/server/spark-3.4.4-bin-hadoop3/conf/log4j2.properties node3:/export/server/spark-3.4.4-bin-hadoop3/conf/
6.启动该启动的,访问spark-sql
su - hadoop
start-dfs.sh
start-yarn.sh
nohup /export/server/hive/bin/hive --service metastore >> /export/server/hive/logs/metastore.log 2>&1 &
cd /export/server/spark-3.4.4-bin-hadoop3/sbin
./start-all.sh
jps
spark-sql
7.在spark-sql中尝试一下写代码
use demo1;
-- 创建一个新表
CREATE TABLE employees (
id INT,
name STRING,
salary DOUBLE
);
-- 插入单条记录
INSERT INTO employees VALUES (4, 'Alice', 1300);
-- 插入多条记录
INSERT INTO employees VALUES
(5, 'Bob', 1400),
(6, 'Charlie', 1100);
-- 查询表中的所有数据
SELECT * FROM employees;
-- 删除表
DROP TABLE IF EXISTS employees;
相关文章:
spark-sql配置教程
1.前期准备 (1)首先要把hadoop集群,hive和spark等配置好 hadoop集群,hive的配置可以看看这个博主写的博客 大数据_蓝净云的博客-CSDN博客 或者看看黑马程序员的视频 黑马程序员大数据入门到实战教程,大数据开发必…...
生成表格pdf格式
1. 添加依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>7.2.5</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>layout…...
C++ 游戏开发的前沿趋势:从光线追踪到人工智能的全新挑战
随着游戏行业的快速发展,技术的不断进步为游戏开发带来了前所未有的机遇和挑战。从逼真的光影效果到复杂的物理模拟,再到智能化的非玩家角色(NPC)行为和玩家交互,现代游戏的技术需求已经超越了传统的图形渲染与场景搭建…...
微信小程序3-显标记信息和弹框
感谢阅读,初学小白,有错指正。 一、实现功能: 在地图上添加标记点后,标记点是可以携带以下基础信息的,如标题、id、经纬度等。但是对于开发来说,这些信息还不足够,而且还要做到点击标记点时&a…...
EasyNVR中HTTP-FLV协议无法播放怎么解决?
在科技日新月异的今天,摄像头作为公共安全领域的重要一环,其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析,我们可以对特定区域进行实时监控和记录,为社会的安全稳定提供了强有力的保障。 问…...
spring cloud之ribbon复习回顾
其实在项目中直接使用ribbon时不多,大多是使用feign的,其实feign底层也是通过ribbon构建的,主要记忆一下计算规则,ribbon的源码还是很不错的,还是值得学习的。 1、添加pom <dependency><groupId>org.spr…...
RFT 强化微调
OpenAI在今天发布的新技术,RFT结合了SFT和RL的优化算法,与传统的监督微调不同,强化微调旨在通过任务训练让模型掌握复杂推理能力,而不仅仅是“记住答案”。 什么是强化微调 强化微调是通过高质量任务数据和参考答案优化大语言模型…...
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
SpringBoot教程(三十二) | SpringBoot集成Skywalking链路跟踪 一、Skywalking是什么?二、Skywalking与JDK版本的对应关系三、Skywalking下载四、Skywalking 数据存储五、Skywalking 的启动六、部署探针 前提: Agents 8.9.0 放入 …...
分布式搜索引擎Elasticsearch
Elasticsearch是一个基于Lucene库的开源分布式搜索引擎,它被设计用于云计算中,能够实现快速、near-real-time的搜索,并且可以进行大规模的分布式索引。 以下是一个简单的Python代码示例,展示如何使用Elasticsearch的Python客户端…...
在Vue.js中生成二维码(将指定的url+参数 生成二维码)
在Vue.js中生成二维码,你可以使用JavaScript库如qrcode或qr.js。以下是一个简单的例子,展示如何在Vue组件中使用qrcode库将指定的URL加上参数生成二维码。 首先,你需要安装qrcode库。如果你使用的是npm或yarn,可以通过命令行安装…...
统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍
文章来源:统信桌面专业版部署postgresql-14.2postgis-3.2方法介绍 | 统信软件-知识分享平台 应用场景 CPU架构:X86(海光C86-3G 3350) OS版本信息:1070桌面专业版 软件信息:postgresql-14.2postgis-3.2 …...
数字图像处理(16):RGB与HSV互转
(1)HSV颜色模型:HSV颜色模型,又称为六角锥体模型,以色调(H)、饱和度(S)、亮度(V)为基础,能够更加自然地表现和处理颜色,因…...
web组态可视化编辑器
随着工业智能制造的发展,工业企业对设备可视化、远程运维的需求日趋强烈,传统的单机版组态软件已经不能满足越来越复杂的控制需求,那么实现web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说,将单机版软件转…...
数组 - 八皇后 - 困难
************* C topic: 面试题 08.12. 八皇后 - 力扣(LeetCode) ************* Good morning, gays, Fridary angin and try the hard to celebrate. Inspect the topic: This topic I can understand it in a second. And I do rethink a movie, …...
【分布式】Redis分布式缓存
一、什么是Redis分布式缓存 Redis分布式缓存是指使用Redis作为缓存系统来存储和管理数据的分布式方案。在分布式系统中,多台服务器共同对外提供服务,为了提高系统的性能和可扩展性,通常会引入缓存来减轻数据库的压力。Redis作为一种高性能的…...
Ubuntu——extrepo添加部分外部软件源
extrepo 是一个用于 Ubuntu 和其他基于 Debian 的系统的工具,它的主要作用是简化和管理外部软件源(repositories)的添加和更新。通过使用 extrepo,用户可以方便地添加、删除和管理第三方软件源,而不需要手动编辑源列表…...
评估大语言模型(LLM)在分子预测任务能够理解分子几何形状性能
摘要 论文地址:https://arxiv.org/pdf/2403.05075 近年来,机器学习模型在各个领域越来越受欢迎。学术界和工业界都投入了大量精力来提高机器学习的效率,以期实现人工通用智能(AGI)。其中,大规模语言模型&a…...
如何查看电脑刷新率
Windows 系统 通过显示设置查看: 右键点击桌面空白处,选择 “显示设置”。在打开的窗口中,找到 “高级显示设置”。点击 “显示适配器属性”。在弹出的窗口中,选择 “监视器” 选项卡,即可看到当前的屏幕刷新率。使用 …...
mysql集群MHA方式部署
1. 基本信息 部署机器角色部署路径192.168.242.71MySQL-Mater MHA-NodeMySQL: /alidata1/mysql-8.0.28192.168.242.72MySQL-Slave MHA-NodeMHA-Node: /alidata1/admin/tools/mha4mysql-node-0.58192.168.242.73MySQL-Slave MHA-Node192.168.242.74MHA-ManagerMHA-Manager: …...
第十七章 使用 MariaDB 数据库管理系统
1. 数据库管理系统 数据库是指按照某些特定结构来存储数据资料的数据仓库。在当今这个大数据技术迅速崛起的年代,互联网上每天都会生成海量的数据信息,数据库技术也从最初只能存储简单的表格数据的单一集中存储模式,发展到了现如今存储海量…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
