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

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.前期准备 &#xff08;1&#xff09;首先要把hadoop集群&#xff0c;hive和spark等配置好 hadoop集群&#xff0c;hive的配置可以看看这个博主写的博客 大数据_蓝净云的博客-CSDN博客 或者看看黑马程序员的视频 黑马程序员大数据入门到实战教程&#xff0c;大数据开发必…...

生成表格pdf格式

1. 添加依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>7.2.5</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>layout…...

C++ 游戏开发的前沿趋势:从光线追踪到人工智能的全新挑战

随着游戏行业的快速发展&#xff0c;技术的不断进步为游戏开发带来了前所未有的机遇和挑战。从逼真的光影效果到复杂的物理模拟&#xff0c;再到智能化的非玩家角色&#xff08;NPC&#xff09;行为和玩家交互&#xff0c;现代游戏的技术需求已经超越了传统的图形渲染与场景搭建…...

微信小程序3-显标记信息和弹框

感谢阅读&#xff0c;初学小白&#xff0c;有错指正。 一、实现功能&#xff1a; 在地图上添加标记点后&#xff0c;标记点是可以携带以下基础信息的&#xff0c;如标题、id、经纬度等。但是对于开发来说&#xff0c;这些信息还不足够&#xff0c;而且还要做到点击标记点时&a…...

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天&#xff0c;摄像头作为公共安全领域的重要一环&#xff0c;其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析&#xff0c;我们可以对特定区域进行实时监控和记录&#xff0c;为社会的安全稳定提供了强有力的保障。 问…...

spring cloud之ribbon复习回顾

其实在项目中直接使用ribbon时不多&#xff0c;大多是使用feign的&#xff0c;其实feign底层也是通过ribbon构建的&#xff0c;主要记忆一下计算规则&#xff0c;ribbon的源码还是很不错的&#xff0c;还是值得学习的。 1、添加pom <dependency><groupId>org.spr…...

RFT 强化微调

OpenAI在今天发布的新技术&#xff0c;RFT结合了SFT和RL的优化算法&#xff0c;与传统的监督微调不同&#xff0c;强化微调旨在通过任务训练让模型掌握复杂推理能力&#xff0c;而不仅仅是“记住答案”。 什么是强化微调 强化微调是通过高质量任务数据和参考答案优化大语言模型…...

SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪

SpringBoot教程&#xff08;三十二&#xff09; | SpringBoot集成Skywalking链路跟踪 一、Skywalking是什么&#xff1f;二、Skywalking与JDK版本的对应关系三、Skywalking下载四、Skywalking 数据存储五、Skywalking 的启动六、部署探针 前提&#xff1a; Agents 8.9.0 放入 …...

分布式搜索引擎Elasticsearch

Elasticsearch是一个基于Lucene库的开源分布式搜索引擎&#xff0c;它被设计用于云计算中&#xff0c;能够实现快速、near-real-time的搜索&#xff0c;并且可以进行大规模的分布式索引。 以下是一个简单的Python代码示例&#xff0c;展示如何使用Elasticsearch的Python客户端…...

在Vue.js中生成二维码(将指定的url+参数 生成二维码)

在Vue.js中生成二维码&#xff0c;你可以使用JavaScript库如qrcode或qr.js。以下是一个简单的例子&#xff0c;展示如何在Vue组件中使用qrcode库将指定的URL加上参数生成二维码。 首先&#xff0c;你需要安装qrcode库。如果你使用的是npm或yarn&#xff0c;可以通过命令行安装…...

统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍

文章来源&#xff1a;统信桌面专业版部署postgresql-14.2postgis-3.2方法介绍 | 统信软件-知识分享平台 应用场景 CPU架构&#xff1a;X86&#xff08;海光C86-3G 3350&#xff09; OS版本信息&#xff1a;1070桌面专业版 软件信息&#xff1a;postgresql-14.2postgis-3.2 …...

数字图像处理(16):RGB与HSV互转

&#xff08;1&#xff09;HSV颜色模型&#xff1a;HSV颜色模型&#xff0c;又称为六角锥体模型&#xff0c;以色调&#xff08;H&#xff09;、饱和度&#xff08;S&#xff09;、亮度&#xff08;V&#xff09;为基础&#xff0c;能够更加自然地表现和处理颜色&#xff0c;因…...

web组态可视化编辑器

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转…...

数组 - 八皇后 - 困难

************* C topic: 面试题 08.12. 八皇后 - 力扣&#xff08;LeetCode&#xff09; ************* 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作为缓存系统来存储和管理数据的分布式方案。在分布式系统中&#xff0c;多台服务器共同对外提供服务&#xff0c;为了提高系统的性能和可扩展性&#xff0c;通常会引入缓存来减轻数据库的压力。Redis作为一种高性能的…...

Ubuntu——extrepo添加部分外部软件源

extrepo 是一个用于 Ubuntu 和其他基于 Debian 的系统的工具&#xff0c;它的主要作用是简化和管理外部软件源&#xff08;repositories&#xff09;的添加和更新。通过使用 extrepo&#xff0c;用户可以方便地添加、删除和管理第三方软件源&#xff0c;而不需要手动编辑源列表…...

评估大语言模型(LLM)在分子预测任务能够理解分子几何形状性能

摘要 论文地址&#xff1a;https://arxiv.org/pdf/2403.05075 近年来&#xff0c;机器学习模型在各个领域越来越受欢迎。学术界和工业界都投入了大量精力来提高机器学习的效率&#xff0c;以期实现人工通用智能&#xff08;AGI&#xff09;。其中&#xff0c;大规模语言模型&a…...

如何查看电脑刷新率

Windows 系统 通过显示设置查看&#xff1a; 右键点击桌面空白处&#xff0c;选择 “显示设置”。在打开的窗口中&#xff0c;找到 “高级显示设置”。点击 “显示适配器属性”。在弹出的窗口中&#xff0c;选择 “监视器” 选项卡&#xff0c;即可看到当前的屏幕刷新率。使用 …...

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. 数据库管理系统 数据库是指按照某些特定结构来存储数据资料的数据仓库。在当今这个大数据技术迅速崛起的年代&#xff0c;互联网上每天都会生成海量的数据信息&#xff0c;数据库技术也从最初只能存储简单的表格数据的单一集中存储模式&#xff0c;发展到了现如今存储海量…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...