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

openEuler24.03 LTS下安装Hive3

目录

前提条件

安装MySQL

卸载原有mysql及mariadb

下载mysql

解压mysql

安装mysql

启动mysql服务

开机自启动mysql服务

登录mysql

修改mysql密码

远程连接mysql

安装Hive

下载安装包

解压

设置环境变量

解决日志包冲突

将mysql驱动拷贝到lib目录

配置Hive

创建hive-site.xml

调整输出日志级别

初始化Hive元数据库

修改元数据库字符集

进入Hive命令行

简单使用Hive

退出Hive命令行


前提条件

Hive依赖于Hadoop,所以需要先安装好Hadoop,可参考:openEuler24.03 LTS下安装Hadoop3完全分布式

安装MySQL

Hive的元数据存储在关系型数据库中,这里使用的关系型数据库为MySQL,所以需要先安装好MySQL。

在node2安装MySQL。

卸载原有mysql及mariadb

sudo systemctl stop mysql mysqld 2>/dev/null
sudo rpm -qa | grep -i 'mysql\|mariadb' | xargs -n1 sudo rpm -e --nodeps 2>/dev/null
sudo rm -rf /var/lib/mysql /var/log/mysqld.log /usr/lib64/mysql /etc/my.cnf /usr/my.cnf

下载mysql

这里下载的mysql版本为mysql8.4.2,如果下载较旧的mysql版本可能与openEuler24.03不兼容。

cd /opt/software
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.2-1.el9.x86_64.rpm-bundle.tar

注意:如果命令行下载较慢,可以直接使用浏览器访问https链接地址下载,再上传安装文件到Linux的安装包存放目录,例如:/opt/software。

解压mysql

# 创建mysql目录
[liang@node2 software]$ mkdir mysql
​
#解压
[liang@node2 software]$ tar -xvf mysql-8.4.2-1.el9.x86_64.rpm-bundle.tar -C mysql

删除不必要的rpm包

[liang@node2 software]$ cd mysql
[liang@node2 mysql]$ ls
mysql-community-client-8.4.2-1.el9.x86_64.rpm
mysql-community-client-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-client-plugins-8.4.2-1.el9.x86_64.rpm
mysql-community-client-plugins-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-common-8.4.2-1.el9.x86_64.rpm
mysql-community-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-debugsource-8.4.2-1.el9.x86_64.rpm
mysql-community-devel-8.4.2-1.el9.x86_64.rpm
mysql-community-icu-data-files-8.4.2-1.el9.x86_64.rpm
mysql-community-libs-8.4.2-1.el9.x86_64.rpm
mysql-community-libs-compat-8.4.2-1.el9.x86_64.rpm
mysql-community-libs-compat-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-libs-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-server-8.4.2-1.el9.x86_64.rpm
mysql-community-server-debug-8.4.2-1.el9.x86_64.rpm
mysql-community-server-debug-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-server-debuginfo-8.4.2-1.el9.x86_64.rpm
mysql-community-test-8.4.2-1.el9.x86_64.rpm
mysql-community-test-debuginfo-8.4.2-1.el9.x86_64.rpm
[liang@node2 mysql]$ rm -f *debug*
[liang@node2 mysql]$ ls
mysql-community-client-8.4.2-1.el9.x86_64.rpm          mysql-community-libs-8.4.2-1.el9.x86_64.rpm
mysql-community-client-plugins-8.4.2-1.el9.x86_64.rpm  mysql-community-libs-compat-8.4.2-1.el9.x86_64.rpm
mysql-community-common-8.4.2-1.el9.x86_64.rpm          mysql-community-server-8.4.2-1.el9.x86_64.rpm
mysql-community-devel-8.4.2-1.el9.x86_64.rpm           mysql-community-test-8.4.2-1.el9.x86_64.rpm
mysql-community-icu-data-files-8.4.2-1.el9.x86_64.rpm

安装mysql

安装命令

[liang@node2 mysql]$ sudo rpm -ivh *.rpm --force --nodeps

安装过程

警告:mysql-community-client-8.4.2-1.el9.x86_64.rpm: 头 V4 RSA/SHA256 Signature, 密钥 ID a8d3785c: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:mysql-community-common-8.4.2-1.el################################# [ 11%]2:mysql-community-client-plugins-8.################################# [ 22%]3:mysql-community-libs-8.4.2-1.el9 ################################# [ 33%]4:mysql-community-client-8.4.2-1.el################################# [ 44%]5:mysql-community-icu-data-files-8.################################# [ 56%]6:mysql-community-server-8.4.2-1.el################################# [ 67%]7:mysql-community-test-8.4.2-1.el9 ################################# [ 78%]8:mysql-community-devel-8.4.2-1.el9################################# [ 89%]9:mysql-community-libs-compat-8.4.2################################# [100%]
/usr/lib/tmpfiles.d/dbus.conf:13: Line references path below legacy directory /var/run/, updating /var/run/dbus/containers → /run/dbus/containers; please update the tmpfiles.d/ drop-in file accordingly.
[liang@node1 mysql]$

启动mysql服务

[liang@node2 mysql]$ sudo systemctl start mysqld

开机自启动mysql服务

[liang@node2 mysql]$ sudo systemctl enable mysqld

登录mysql

查看临时密码

[liang@node2 mysql]$ sudo grep 'temporary password' /var/log/mysqld.log

输出如下

2025-03-19T06:43:36.958044Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: tFggwGvsx8=j

这里查看到的临时密码为:tFggwGvsx8=j

注意:查看到的临时密码可能不一样,请使用实际查到的临时密码登录mysql。

登录mysql

[liang@node2 mysql]$ mysql -uroot -p'tFggwGvsx8=j'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.2
​
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> exit;
Bye
[liang@node2 mysql]$ 

修改mysql密码

修改密码策略

若在内网环境使用MySQL,想使用简单密码,则需要设置密码策略,否则,不需要设置密码策略。

[liang@node2 mysql]$ sudo vim /etc/my.cnf

[mysqld]下面添加如下语句

validate_password.length=4
validate_password.policy=0

重启mysql

[liang@node2 mysql]$ sudo systemctl restart mysqld

登录mysql并修改密码

[liang@node2 mysql]$ mysql -uroot -p'tFggwGvsx8=j'
​
mysql> set password='000000';
Query OK, 0 rows affected (0.00 sec)
​
mysql> update mysql.user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
​
mysql> alter user 'root'@'%' identified by '000000';
Query OK, 0 rows affected (0.01 sec)
​
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
​
mysql> exit;
Bye

使用新密码登录

[liang@node2 mysql]$ mysql -uroot -p000000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.2 MySQL Community Server - GPL
​
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> exit;
Bye
[liang@node2 mysql]$

远程连接mysql

使用navicat等工具,通过ip及端口号远程连接

安装Hive

在node2安装Hive

下载安装包

浏览器访问以下链接下载Hive安装包

https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

上传Hive安装包到Linux /opt/software目录

[liang@node2 software]$ ls | grep hive
apache-hive-3.1.3-bin.tar.gz

解压

解压

[liang@node2 software]$ tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/

重命名

[liang@node2 software]$ ls /opt/module/
apache-hive-3.1.3-bin  hadoop-3.3.4  jdk1.8.0_271
​
[liang@node2 software]$ mv /opt/module/apache-hive-3.1.3-bin /opt/module/hive-3.1.3

设置环境变量

[liang@node2 software]$ sudo vim /etc/profile.d/my_env.sh

末尾添加如下内容

#HIVE_HOME
export HIVE_HOME=/opt/module/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin

让环境变量生效

[liang@node2 software]$ source /etc/profile

解决日志包冲突

解决日志Jar包依赖与Hadoop日志Jar版本不同冲突,重命名hive的日志包为其他名字,这样就只有hadoop的日志Jar包生效,冲突解决。

[liang@node2 software]$ cd $HIVE_HOME/lib/
​
[liang@node2 lib]$ ls | grep slf4j
log4j-slf4j-impl-2.17.1.jar
​
[liang@node2 lib]$ mv log4j-slf4j-impl-2.17.1.jar log4j-slf4j-impl-2.17.1.jar.bak
​

将mysql驱动拷贝到lib目录

浏览器访问如下地址,下载mysql驱动包

https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.4.0

点击jar下载,并上传jar包文件到Linux /opt/software目录

[liang@node2 lib]$ ls /opt/software | grep connect
mysql-connector-j-8.4.0.jar

将jar文件复制到HIVE_HOME的lib目录

[liang@node2 lib]$ cp /opt/software/mysql-connector-j-8.4.0.jar $HIVE_HOME/lib/
[liang@node2 lib]$ ls | grep connect
mysql-connector-j-8.4.0.jar

配置Hive

切换到Hive配置目录,查看配置文件

[liang@node2 lib]$ cd $HIVE_HOME/conf
[liang@node2 conf]$ ls
beeline-log4j2.properties.template    ivysettings.xml
hive-default.xml.template             llap-cli-log4j2.properties.template
hive-env.sh.template                  llap-daemon-log4j2.properties.template
hive-exec-log4j2.properties.template  parquet-logging.properties
hive-log4j2.properties.template

创建hive-site.xml
[liang@node2 conf]$ vim hive-site.xml

配置内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!--配置Hive保存元数据信息所需的 MySQL URL地址--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node2:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</value></property><!--配置Hive连接MySQL的驱动全类名--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!--配置Hive连接MySQL的用户名 --><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!--配置Hive连接MySQL的密码 --><property><name>javax.jdo.option.ConnectionPassword</name><value>000000</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>hive.server2.thrift.bind.host</name><value>node2</value></property><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><property><name>hive.cli.print.header</name><value>true</value></property><property><name>hive.cli.print.current.db</name><value>true</value></property>
</configuration>

配置文件中连接nod2机器mysql的metastore数据库,所以需要先把metastore数据库创建出来。

[liang@node2 conf]$ mysql -uroot -p000000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.4.2 MySQL Community Server - GPL
​
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> create database metastore;
Query OK, 1 row affected (0.01 sec)
​
mysql> exit;
Bye
[liang@node1 conf]$

调整输出日志级别

默认日志级别为INFO,执行HQL语句过程会输出太多日志,将Hive输出日志级别改为WARN减少日志输出。

cd $HIVE_HOME/conf

执行如下命令新建log4j.properties

cat > log4j.properties <<EOL
log4j.rootLogger=WARN, CAlog4j.appender.CA=org.apache.log4j.ConsoleAppenderlog4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
EOL

初始化Hive元数据库

[liang@node2 conf]$ schematool -initSchema -dbType mysql -verbose
末尾部分输出内容如下
​
0: jdbc:mysql://node2:3306/metastore> !closeall
Closing: 0: jdbc:mysql://node2:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
beeline>
beeline> Initialization script completed
schemaTool completed

看到schemaTool completed输出,说明初始化成功。

初始化本质是在元数据库里创建出相关的表及初始化相关表数据,可以到mysql的metastore数据库查看生成的表数据。

修改元数据库字符集

[liang@node2 conf]$ mysql -uroot -p000000
...
mysql> use metastore;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
​
Database changed
mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
Query OK, 0 rows affected, 1 warning (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 1
​
mysql> alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 1
mysql> quit;
Bye
[liang@node2 conf]$
​

进入Hive命令行

进入Hive命令行之前,需要启动hadoop,如果还没启动,需要先启动hadoop

# 分别启动
[liang@node2 conf]$ start-dfs.sh
[liang@node3 conf]$ start-yarn.sh
​
# 或者使用脚本启动
[liang@node2 conf]$ hdp.sh start

进入hive命令行

[liang@node2 conf]$ hive
which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_271/bin:/opt/module/hadoop-3.3.4/bin:/opt/module/hadoop-3.3.4/sbin:/home/liang/bin:/opt/module/jdk1.8.0_271/bin:/opt/module/hadoop-3.3.4/bin:/opt/module/hadoop-3.3.4/sbin:/home/liang/bin:/opt/module/jdk1.8.0_271/bin:/opt/module/hadoop-3.3.4/bin:/opt/module/hadoop-3.3.4/sbin:/opt/module/hive-3.1.3/bin)
Hive Session ID = a2b0c24d-7c45-4e95-9c86-1108b2606f3b
​
Logging initialized using configuration in jar:file:/opt/module/hive-3.1.3/lib/hive-common-3.1.3.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Hive Session ID = 5d3c533a-79e3-4690-b54c-1006d18d7aca
hive (default)>
​

简单使用Hive

查看数据库

hive (default)> show databases;
OK
database_name
default
Time taken: 0.609 seconds, Fetched: 1 row(s)

查看数据表

hive (default)> show tables;
OK
tab_name
Time taken: 0.051 seconds

创建表

hive (default)> CREATE TABLE IF NOT EXISTS test_students (id INT,name STRING,age INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

插入数据

hive (default)> INSERT INTO TABLE test_students VALUES (103, 'Bob', 21); 

查看表数据

hive (default)> select * from test_students;

退出Hive命令行

hive (default)> quit;
[liang@node1 conf]$

 完成!enjoy it!

相关文章:

openEuler24.03 LTS下安装Hive3

目录 前提条件 安装MySQL 卸载原有mysql及mariadb 下载mysql 解压mysql 安装mysql 启动mysql服务 开机自启动mysql服务 登录mysql 修改mysql密码 远程连接mysql 安装Hive 下载安装包 解压 设置环境变量 解决日志包冲突 将mysql驱动拷贝到lib目录 配置Hive 创…...

13-动态规划-最长公共子序列

题目 来源 24. 最长公共子序列 思路 不想打字&#xff0c;援引自最长公共子序列 (LCS) 详解例题模板&#xff08;全&#xff09;-CSDN博客 图示举例&#xff1a; 其余详见代码 代码 #include<bits/stdc.h> using namespace std; const int N110; int f[N][N]; int m…...

golang 生成单元测试报告

在 Go 语言中&#xff0c;你可以使用 go test 生成单元测试报告。以下是几种方法&#xff1a; 1. 生成基本测试报告&#xff08;文本格式&#xff09; go test -v ./... > test_report.txt-v&#xff1a;显示详细的测试信息./...&#xff1a;递归测试所有子目录> test_r…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

设备健康管理系统是什么,设备健康管理系统多少钱?

想象一下&#xff0c;你的汽车在仪表盘报警前 3 天&#xff0c;手机就收到 “发动机轴承剩余寿命 1500 公里” 的提醒 —— 这就是 ** 设备健康管理系统&#xff08;EHM&#xff09;** 的日常。在制造业&#xff0c;设备故障每年造成全球 3.4 万亿美元损失&#xff0c;而 80% 的…...

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…...

docker 部署elk 设置账号密码

1. 先把 kibana 停掉 2.进入es 容器 docker exec -it 75895a078cbc /bin/bash 找到 bin 目录 执行 ./elasticsearch-setup-passwords interactive 全部设置一样的密码 ,不一样自己要记住&#xff0c;设置成功会输出如下内容 Changed password for user [apm_system] Chang…...

<table>内有两行<tr>,第一行设定高度为60,剩余第二行,和右侧元素高度补齐。

实现 <table> 内第一行高度设定为 60px&#xff0c;第二行和右侧元素高度补齐的效果&#xff0c;你可以通过 CSS 样式来控制。示例&#xff1a; 为第一行 <tr> 设置固定高度 60px。对于右侧元素&#xff0c;假设它是一个 <div> 或者其他容器&#xff0c;将其…...

QT5.15.2加载pdf为QGraphicsScene的背景

5.15.2使用pdf 必须要安装QT源码&#xff0c;可以看到编译器lib目录已经有pdf相关的lib文件&#xff0c;d是debug 1.找到源码目录&#xff1a;D:\soft\QT\5.15.2\Src\qtwebengine\include 复制这两个文件夹到编译器的包含目录中:D:\soft\QT\5.15.2\msvc2019_64\include 2.找…...

常见的工具和技术

Mockito Mockito 是一个流行的 Java Mocking 框架&#xff0c;用于创建和配置模拟对象&#xff08;Mock Objects&#xff09;&#xff0c;以便在单元测试中模拟复杂依赖关系的行为 使用场景&#xff1a;单元测试、隔离测试 EclipseEclipse 是一个开源的集成开发环境&#xff08…...

Linux怎样源码安装Nginx

1. 安装必要的依赖 在编译 Nginx 之前&#xff0c;你需要安装一些必要的依赖包&#xff0c;像编译工具和库文件等。以 CentOS 系统为例&#xff0c;可借助yum命令来安装&#xff1a; bash sudo yum install -y gcc pcre-devel zlib-devel openssl-devel要是使用的是 Ubuntu 系…...

汇编指令(20250319)

SOC常用总线 AHB&#xff08;Advanced High-performance Bus&#xff09;&#xff1a;先进高性能总线&#xff0c;连接RAM&#xff0c;ROM等高速设备APB&#xff08;Advanced Peripheral Bus&#xff09;&#xff1a;先进外设总线&#xff0c;连接外设等一些低速设备 CISC和R…...

PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建

PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建 引言 在深度学习领域&#xff0c;图像处理始终是一个热门话题。而超分辨率重建&#xff08;Super-Resolution Reconstruction, SR&#xff09;作为其中一个重要的研究方向&#xff0c;旨在通过算法将低分辨率图像恢复…...

神经网络基础之正则化

引言&#xff1a;正则化 &#xff08;Regularization&#xff09; 是机器学习中一种用于防止模型过拟合技术。核心思想是通过在模型损失函数中添加一个惩罚项 &#xff08;Penalty Term&#xff09;&#xff0c;对模型的复杂度进行约束&#xff0c;从而提升模型在新数据上的泛化…...

JAVA序列化与反序列化URLDNS链CC1链

1、序列化的实现 java序列化的是对象属性的&#xff0c;只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。&#xff08;不是则会抛出异常&#xff09;&#xff0c;静态成员变量是属于类的&#xff0c;所以静态成员变量是不能被序列化的&#x…...

孤儿进程和僵尸进程

本文讲述了什么是孤儿进程和僵尸进程&#xff0c;会带来怎样的问题以及如何处理 一、孤儿进程 1&#xff09;什么是孤儿进程 孤儿进程&#xff0c;顾名思义&#xff0c;就是父进程提前终止&#xff0c;但是子进程还在运行中&#xff0c;父进程无法对子进程进行监管&#…...

用ASCII字符转化图片

代码 from PIL import Image# 定义 ASCII 字符集&#xff0c;从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…...

从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验

随着人工智能技术的快速发展&#xff0c;WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术&#xff0c;以其低延迟、跨平台兼容性和强大的音视频处理能力&#xff0c;成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…...

自动化测试工具-Playwright介绍和快速实例

Playwright 是什么 Playwright 是由 Microsoft 开发的开源自动化测试工具,专为现代 Web 应用设计。它支持 Chromium、Firefox 和 WebKit 内核的浏览器,能够跨平台(Windows、macOS、Linux)运行,提供强大的浏览器自动化能力,适用于测试、爬虫和监控等场景。 Playwright的…...

Java:Apache HttpClient中HttpRoute用法的介绍

当使用Apache HttpClient组件时&#xff0c;经常会用到它的连接池组件。典型的代码如下&#xff1a; PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…...

万字长文详解|蚂蚁数据湖深度探索与业务应用实践

作者介绍&#xff1a;黄超傑&#xff0c;蚂蚁数据智能部实时数据团队数据研发工程师&#xff0c;致力于数据湖技术在蚂蚁落地应用、蚂蚁广告实时数仓建设、蚂蚁数据成本治理等工作。 在开始之前 如果&#xff1a; 你想要提升数据时效&#xff0c;能够接受分钟级延迟你好奇准实…...

rk3568 以太网eth1 , 定制板 phy调试问题。

问题: 客户定制底板的 phy 网络不通。 解决逻辑: phy 问题, 就是 照着 公司底板对硬件就行,完全是硬件问题,不用改 软件。 原理图如下:...

React相关面试题

以下是150道React面试题及其详细回答&#xff0c;涵盖了React的基础知识、组件、状态管理、路由、性能优化等多个方面&#xff0c;每道题目都尽量详细且简单易懂&#xff1a; React基础概念类 1. 什么是React&#xff1f; React是一个用于构建用户界面的JavaScript库&#xff…...

IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js

P(rocess)M(anager)2 是一个 node.js 下的进程管理器&#xff0c;内置负载均衡&#xff0c;支持应用自动重启&#xff0c;常用于生产环境运行 node.js 应用&#xff0c;非常好用&#x1f44d; &#x1f33c;概述 2025-03-15日&#xff0c;PM2发布最新版本v6.0.5&#xff0c;这…...

php 高性能,高并发,有哪些框架,扩展,推荐一下,或者技术的实现有哪些

以下是针对PHP高性能、高并发场景的框架、扩展及技术实现推荐&#xff0c;结合最新技术趋势和行业实践进行总结&#xff1a; 一、高性能框架推荐 1. C扩展类框架 YAF (Yet Another Framework) 特点&#xff1a;由C语言编写&#xff0c;直接嵌入PHP内核&#xff0c;仅提供核心M…...

golang单机锁实现

1、锁的概念引入 首先&#xff0c;为什么需要锁&#xff1f; 在并发编程中&#xff0c;多个线程或进程可能同时访问和修改同一个共享资源&#xff08;例如变量、数据结构、文件&#xff09;等&#xff0c;若不引入合适的同步机制&#xff0c;会引发以下问题&#xff1a; 数据竞…...

面试中JVM常被问到的问题以及对应的答案

在面试中&#xff0c;关于JVM常被问到的问题以及对应的答案可能包括&#xff1a; 什么是JVM&#xff1f;它的作用是什么&#xff1f; 答&#xff1a;JVM是Java虚拟机的缩写&#xff0c;是Java程序运行的环境。它负责将Java源代码编译成字节码并运行在不同平台上。 请解释一下J…...

算法——广度优先搜索——跨步迷宫

原题链接 思路&#xff1a;找出最短路径&#xff0c;然后判断是否存在连续三个点是横纵坐标相等的&#xff0c;如果有就步数减1 但是有两个样例过不了 错误原因&#xff1a;在错误的测试案例中&#xff0c;最短路径可能有多条&#xff0c;而我刚好选了一条比较曲折的&#x…...

Python pyqt+flask做一个简单实用的自动排班系统

这是一个基于Flask和PyQt的排班系统&#xff0c;可以将Web界面嵌入到桌面应用程序中。 系统界面&#xff1a; 功能特点&#xff1a; - 读取员工信息和现有排班表 - 自动生成排班表 - 美观的Web界面 - 独立的桌面应用程序 整体架构&#xff1a; 系统采用前后端分离的架构…...

链表操作:分区与回文判断

目录 链表分区&#xff08;Partition&#xff09; 功能概述 代码实现 要点与难点 注意事项 链表回文判断&#xff08;PalindromeList&#xff09; 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中&#xff0c;理解链表的基本结构和操作至关重要…...

基于大模型的腮腺多形性腺瘤全周期诊疗方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究现状与趋势 二、大模型预测原理与方法 2.1 大模型概述 2.2 数据收集与预处理 2.3 模型训练与优化 三、术前预测与评估 3.1 肿瘤特征预测 3.2 风险评估 3.3 案例分析 四、术中方案制定与实施 4.1 手术方案选择 4.2 面神…...

Vue3 界面设计插件 microi-pageengine 入门教程一

系列文章目录 一、Vue3空项目快速集成 microi-pageengine 插件 文章目录 系列文章目录一、前言二、排版布局2.1 功能导航区2.2 组件容器区2.3 属性面板区 三、数据来源配置3.1 json数据源3.2 html数据源 四、事件穿透五、数据保存持久化六、总结 一、前言 上一篇文章介绍了 v…...

如何选择合适的SSL服务器证书

在数字化时代&#xff0c;网络安全已成为企业不可忽视的重要环节。SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接层&#xff09;服务器证书作为保障网站数据传输安全的关键工具&#xff0c;其选择和使用至关重要。 一、SSL证书类型&#xff1a;基础与进阶 SSL证书…...

STC89C52单片机学习——第26节: [11-2]蜂鸣器播放音乐

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.03.19 51单片机学习——第26节: [11-2]蜂鸣器播放音乐 前言开发板说明引用解答和科普一…...

ABC396题解

A 算法标签: 模拟 问题陈述 给你一个长度为 N N N 的整数序列&#xff1a; A ( A 1 , A 2 , … , A N ) A (A_1, A_2, \ldots, A_N) A(A1​,A2​,…,AN​)。 请判断在 A A A 中是否有相同元素连续出现三次或三次以上的位置。 更正式地说&#xff0c;请判断是否存在一个整…...

如何用Python和Selenium实现表单的自动填充与提交?

在今天的数字化时代&#xff0c;自动化工具可以极大地提高工作效率。很多人可能会觉得填表单是个繁琐的任务&#xff0c;不过你知道吗&#xff1f;用Python和Selenium可以轻松解决这一问题&#xff01;本文将带你走进如何利用这两个强大的工具&#xff0c;实现表单的自动填充和…...

使用`plot_heatmap`绘制热力图时

在Python中&#xff0c;使用plot_heatmap绘制热力图时&#xff0c;颜色图例&#xff08;colorbar&#xff09;的定制化设置是关键步骤。以下是实现方法及优化建议&#xff1a; 一、基础图例绘制 自动生成颜色条 使用seaborn.heatmap()时&#xff0c;默认会生成颜色条&#xff0…...

极简桌面待办清单软件,❌不会增加工作量

工作邮件、会议安排、生活琐事……事情多到根本记不住&#xff0c;又怕错过重要事项&#xff0c;焦虑感油然而生。相信这是很多职场朋友遇到的问题&#xff0c;也急需一款好用的极简桌面待办清单软件来辅助我们。 今天我要给大家推荐一款拯救我们于水火的神器——好用便签&…...

QT学习笔记4

一、音视频播放&#xff08;Qt Multimedia&#xff09; 1. 多媒体框架架构 核心类关系 &#xff1a; mermaid #mermaid-svg-mwHLYcpaJDU14uFM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mwHLYcpaJDU14uFM .e…...

软考 中级软件设计师 考点知识点笔记总结 day06

文章目录 6、树和二叉树6.1、树的基本概念6.2、二叉树的基本概念6.3、二叉树的遍历6.4、查找二叉树&#xff08;二叉排序树&#xff09;BST6.5、构造霍夫曼树6.6、线索二叉树6.7、 平衡二叉树 7、 图7.1 、 存储结构 - 邻接矩阵7.2 、 存储结构 - 邻接表7.3、图的遍历7.4、拓扑…...

爬虫基础之爬取猫眼Top100 可视化

网站: TOP100榜 - 猫眼电影 - 一网打尽好电影 本次案例所需用到的模块 requests (发送HTTP请求) pandas(数据处理和分析 保存数据) parsel(解析HTML数据) pyecharts(数据可视化图表) pymysql(连接和操作MySQL数据库) lxml(数据解析模块) 确定爬取的内容: 电影名称 电影主演…...

微信小程序面试内容整理-如何使用wx.request()进行网络请求

wx.request() 是微信小程序中用于发送网络请求的 API,类似于浏览器中的 fetch 或 XMLHttpRequest。通过 wx.request(),开发者可以向服务器发送 HTTP 请求,获取数据或者提交数据。 基本用法 wx.request() 通过提供一个配置对象来进行配置,配置对象中包括请求的 URL、请求方法…...

力扣100二刷——图论、回溯

第二次刷题不在idea写代码&#xff0c;而是直接在leetcode网站上写&#xff0c;“逼”自己掌握常用的函数。 标志掌握程度解释办法⭐Fully 完全掌握看到题目就有思路&#xff0c;编程也很流利⭐⭐Basically 基本掌握需要稍作思考&#xff0c;或者看到提示方法后能解答⭐⭐⭐Sl…...

该错误是由于`KuhnMunkres`类未定义`history`属性导致的

该错误是由于KuhnMunkres类未定义history属性导致的。以下是具体分析及解决方案&#xff1a; 错误原因分析 属性缺失 代码中试图访问km.history&#xff0c;但KuhnMunkres类未在初始化或算法执行过程中定义该属性&#xff0c;因此触发AttributeError。动画实现逻辑不完整 用户…...

DAPO:一个开源的大规模大型语言模型LLM强化学习系统

推断扩展赋予了大型语言模型前所未有的推理能力,强化学习作为激发复杂推理的核心技术,清华大学联合字节提出了解耦片段与动态采样策略优化(DAPO)算法,并全面开源了一个最先进的大规模强化学习系统,该系统使用Qwen2.5-32B基础模型在AIME 2024上取得了50分的高分。还开源了…...

数据结构中的引用管理对象体系

数据结构中的引用管理对象体系 &#xff08;注&#xff1a;似复刻变量即实例对象&#xff09; 引用管理对象的&#xff0c;有引用就能管理到它所指向的对象&#xff0c;我们拿引用最终的目的就是管理那些我们需要管理的最终直接对象&#xff0c;引用也是对象&#xff0c;同时…...

【自学笔记】智能合约基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 智能合约基础知识点总览目录1. 智能合约简介2. 以太坊与Solidity示例代码&#xff1a;Hello World智能合约 3. Solidity基础语法示例代码&#xff1a;简单的计数器合…...

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说&#xff0c;工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护&#xff0c;比如编写一个…...

【八股文】volatile关键字的底层原理是什么

volatile只能保证可见性和有序性 volatile如何保证可见性 当对volatile变量进行写操作的时候&#xff0c;JVM会向处理器发送一条lock前缀的命令&#xff0c;将这个缓存中的变量会写到系统内存中。 所以&#xff0c;如果一个变量被volatile所修饰&#xff0c;每次数据变化之后…...

一种基于大规模语言模型LLM的数据分析洞察生成方法

从复杂数据库中提取洞察对数据驱动决策至关重要,但传统手动生成洞察的方式耗时耗力,现有自动化数据分析方法生成的洞察不如人工生成的有洞察力,且存在适用场景受限等问题。下文将介绍一种新的方法,通过生成高层次问题和子问题,并使用SQL查询和LLM总结生成多表数据库中的见…...