spark-sql配置教程

news2024/12/24 2:12:42

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;


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2253672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】网站常见安全漏洞 - 网站基本组成及漏洞定义

文章目录 引言1. 一个网站的基本构成2. 一些我们经常听到的安全事件3. 网站攻击者及其意图3.1 网站攻击者的类型3.2 攻击者的意图 4. 漏洞的分类4.1 按来源分类4.2 按危害分类4.3 常见漏洞与OWASP Top 10 引言 在当今的数字化时代&#xff0c;安全问题已成为技术领域不可忽视的…

【最新免费PPT制作并下载】Kimi PPT助手:智能化演示文稿生成,职场效率的革命性提升

最新免费PPT制作方法在这里&#xff01;下面我想向大家介绍一款能够极大提升我们工作效率的工具——Kimi PPT助手。 Kimi PPT助手&#xff1a;智能化演示文稿生成 Kimi PPT助手是由Moonshot AI推出的一款革命性产品&#xff0c;它通过人工智能技术&#xff0c;实现了PPT的一键…

黑马微服务开发与实战学习笔记_MybatisPlus_P1介绍与快速入门

系列博客目录 文章目录 系列博客目录MybatisPlus介绍快速入门Part1:入门案例Part1.1:MyBatis项目Part1.2:实现MP Part2:常见注解Part2.1:约定Part2.2:常见注解 Part3:常见配置MyBatisPlus使用的基本流程是什么? MybatisPlus介绍 在Mybatis上加了Plus&#xff0c;表示对Mybati…

多模态大语言模型的对比

简介 文章主要对比了包括 VideoLLaMA 2 、CogVLM2-video 、MiniCPM-V等模型 目前主流的多模态视觉问答大模型&#xff0c;大部分采用视觉编码器、大语言模型、图像到文本特征的投影模块 目录 简介1. VideoLLaMA 21.1 网络结构1.2 STC connector具体的架构 2. MiniCPM-V 2.62.…

Docker Compose 和 Kubernetes 之间的区别?

一、简介&#x1f380; 1.1 Docker Compose Docker Compose 是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排&#xff0c;可以管理多个 Docker 容器组成一个应用。你只需定义一个 YAML 格式的配置文件 docker-compose.yml &#xff0c;即可创建并…

小迪安全笔记 第四十四天 sql盲注 实战利用sql盲注 进行漏洞的利用

sql盲注的分类 什么是盲注 就是我们什么也不知道的情况下进行的注入 前边的注入 都是简单的注入 我们猜测 数据类型 之后 可以直接 union 去查 这种情况多用于 数据库增删查改中的 查 bool盲注也用于查 这个的情况的就是我们前边都试了 没有用 就需要…

FFmpeg:强大的音视频处理工具指南

FFmpeg&#xff1a;强大的音视频处理工具指南 1. FFmpeg简介2. 核心特性2.1 基础功能2.2 支持的格式和编解码器 3. 主要组件3.1 命令行工具3.2 开发库 4. 最新发展5. 安装指南5.1 Windows系统安装5.1.1 直接下载可执行文件5.1.2 使用包管理器安装 5.2 Linux系统安装5.2.1 Ubunt…

Cursor+Devbox AI开发快速入门

1. 前言 今天无意间了解到 Cursor 和 Devbox 两大开发神器,初步尝试以后发现确实能够大幅度提升开发效率,特此想要整理成博客以供大家快速入门. 简单理解 Cursor 就是一款结合AI大模型的代码编辑器,你可以将自己的思路告诉AI,剩下的目录结构的搭建以及项目代码的实现均由AI帮…

MySQL——操作

一.库的操作 1.基本操作 创建数据库 create database 数据库名称; 查看数据库 show databases; 删除数据库 drop database 数据库名称; 执行删除之后的结果: 数据库内部看不到对应的数据库 对应的数据库文件夹被删除&#xff0c;级联删除&#xff0c;里面的数据表全部被删…

【Python系列】使用 `psycopg2` 连接 PostgreSQL 数据库

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MacOS安装sshfs挂载远程电脑硬盘到本地

文章目录 sshfs简介sshfs安装下载安装macFUSE安装sshfs sshfs使用注意事项 sshfs简介 SSHFS&#xff08;SSH Filesystem&#xff09;是一种基于FUSE&#xff08;用户空间文件系统&#xff09;的文件系统&#xff0c;它允许你通过SSH协议挂载远程文件系统。使用SSHFS&#xff0…

数据结构---链表(2)---双向链表

链表(1)中讲过了在OJ题中出现很多并且能作为一些复杂数据结构子结构的不带头单向不循环链表&#xff0c;下面讲解应用很广很实用的带头双向循环链表。 三、双向链表---DoublyLinkedList 演示带头双向循环链表(实用)。 带头--->不需要对空链表继续单独判断&#xff1b;循环…

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:智行无忧停车场管理系统(前后端源码 + 数据库 sql 脚本)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 车辆信息管理功能 5.0 停车位管理功能 6.0 入场登记管理功能 7.0 预约管理功能 8.0 收费规则功能 9.0…

【text2sql】低资源场景下Text2SQL方法

SFT使模型能够遵循输入指令并根据预定义模板进行思考和响应。如上图&#xff0c;、 和 是用于通知模型在推理过程中响应角色的角色标签。 后面的内容表示模型需要遵循的指令&#xff0c;而 后面的内容传达了当前用户对模型的需求。 后面的内容代表模型的预期输出&#xff0c;也…

MongoDB安装|注意事项

《疯狂Spring Boot讲义》是2021年电子工业出版社出版的图书&#xff0c;作者是李刚 《疯狂Spring Boot终极讲义》不是一本介绍类似于PathVariable、MatrixVariable、RequestBody、ResponseBody这些基础注解的图书&#xff0c;它是真正讲解Spring Boot的图书。Spring Boot的核心…

基于 LLamafactory 的异步API高效调用实现与速度对比

文章目录 背景摘要简介代码实现运行结果速度对比异步调用速度同步调用速度 背景 原先经常调用各家的闭源大模型的API&#xff0c;如果使用同步的方式调用&#xff0c;速度会很慢。为了加快 API 的调用速度&#xff0c;决定使用异步调用 API 的方式。 摘要 通过异步方式调用大…

Linux的用户和权限【Linux操作系统】

文章目录 Linux的用户切换用户普通用户暂时以root用户的权限执行指令如何把一个普通用户加入白名单? 新建用户 Linux权限权限的组成更改权限文件/目录权限的表示方法&#xff1a; umask粘滞位添加粘滞位的方法 Linux的用户 Linux下有两种⽤⼾&#xff1a;超级用户&#xff08…

如何使用apache部署若依前后端分离项目

本章教程介绍,如何在apache上部署若依前后端分离项目 一、教程说明 本章教程,不介绍如何启动后端以及安装数据库等步骤,着重介绍apache的反向代理如何配置。 参考此教程,默认你已经完成了若依后端服务的启动步骤。 前端打包命令使用以下命令进行打包之后会生成一个dist目录…

优先算法 —— 滑动窗口系列 - 无重复字符的最长子串

目录 前言 1. 无重复字符的最长子串 2. 题目解析 3. 算法原理 解法1&#xff1a;暴力枚举 哈希表&#xff08;判断字符是否有重复出现&#xff09; 解法2&#xff1a;滑动窗口 4. 代码 前言 当我们发现暴力解法两个指针都不回退&#xff0c;都是向同一个方向移动的时候我…

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现&#xff1a; 人的大脑结构非常复杂&#xff0c;内部交织密布着神经和血管&#xff0c;所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术&#xff0c;通常需要…