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&useUnicode=true&characterEncoding=UTF-8&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. 最长公共子序列 思路 不想打字,援引自最长公共子序列 (LCS) 详解例题模板(全)-CSDN博客 图示举例: 其余详见代码 代码 #include<bits/stdc.h> using namespace std; const int N110; int f[N][N]; int m…...
golang 生成单元测试报告
在 Go 语言中,你可以使用 go test 生成单元测试报告。以下是几种方法: 1. 生成基本测试报告(文本格式) go test -v ./... > test_report.txt-v:显示详细的测试信息./...:递归测试所有子目录> test_r…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
设备健康管理系统是什么,设备健康管理系统多少钱?
想象一下,你的汽车在仪表盘报警前 3 天,手机就收到 “发动机轴承剩余寿命 1500 公里” 的提醒 —— 这就是 ** 设备健康管理系统(EHM)** 的日常。在制造业,设备故障每年造成全球 3.4 万亿美元损失,而 80% 的…...
设计模式(创建型)-抽象工厂模式
摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…...
docker 部署elk 设置账号密码
1. 先把 kibana 停掉 2.进入es 容器 docker exec -it 75895a078cbc /bin/bash 找到 bin 目录 执行 ./elasticsearch-setup-passwords interactive 全部设置一样的密码 ,不一样自己要记住,设置成功会输出如下内容 Changed password for user [apm_system] Chang…...
<table>内有两行<tr>,第一行设定高度为60,剩余第二行,和右侧元素高度补齐。
实现 <table> 内第一行高度设定为 60px,第二行和右侧元素高度补齐的效果,你可以通过 CSS 样式来控制。示例: 为第一行 <tr> 设置固定高度 60px。对于右侧元素,假设它是一个 <div> 或者其他容器,将其…...
QT5.15.2加载pdf为QGraphicsScene的背景
5.15.2使用pdf 必须要安装QT源码,可以看到编译器lib目录已经有pdf相关的lib文件,d是debug 1.找到源码目录:D:\soft\QT\5.15.2\Src\qtwebengine\include 复制这两个文件夹到编译器的包含目录中:D:\soft\QT\5.15.2\msvc2019_64\include 2.找…...
常见的工具和技术
Mockito Mockito 是一个流行的 Java Mocking 框架,用于创建和配置模拟对象(Mock Objects),以便在单元测试中模拟复杂依赖关系的行为 使用场景:单元测试、隔离测试 EclipseEclipse 是一个开源的集成开发环境(…...
Linux怎样源码安装Nginx
1. 安装必要的依赖 在编译 Nginx 之前,你需要安装一些必要的依赖包,像编译工具和库文件等。以 CentOS 系统为例,可借助yum命令来安装: bash sudo yum install -y gcc pcre-devel zlib-devel openssl-devel要是使用的是 Ubuntu 系…...
汇编指令(20250319)
SOC常用总线 AHB(Advanced High-performance Bus):先进高性能总线,连接RAM,ROM等高速设备APB(Advanced Peripheral Bus):先进外设总线,连接外设等一些低速设备 CISC和R…...
PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建
PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建 引言 在深度学习领域,图像处理始终是一个热门话题。而超分辨率重建(Super-Resolution Reconstruction, SR)作为其中一个重要的研究方向,旨在通过算法将低分辨率图像恢复…...
神经网络基础之正则化
引言:正则化 (Regularization) 是机器学习中一种用于防止模型过拟合技术。核心思想是通过在模型损失函数中添加一个惩罚项 (Penalty Term),对模型的复杂度进行约束,从而提升模型在新数据上的泛化…...
JAVA序列化与反序列化URLDNS链CC1链
1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…...
孤儿进程和僵尸进程
本文讲述了什么是孤儿进程和僵尸进程,会带来怎样的问题以及如何处理 一、孤儿进程 1)什么是孤儿进程 孤儿进程,顾名思义,就是父进程提前终止,但是子进程还在运行中,父进程无法对子进程进行监管&#…...
用ASCII字符转化图片
代码 from PIL import Image# 定义 ASCII 字符集,从最暗到最亮 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如何借助大模型提升音视频通信体验
随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…...
自动化测试工具-Playwright介绍和快速实例
Playwright 是什么 Playwright 是由 Microsoft 开发的开源自动化测试工具,专为现代 Web 应用设计。它支持 Chromium、Firefox 和 WebKit 内核的浏览器,能够跨平台(Windows、macOS、Linux)运行,提供强大的浏览器自动化能力,适用于测试、爬虫和监控等场景。 Playwright的…...
Java:Apache HttpClient中HttpRoute用法的介绍
当使用Apache HttpClient组件时,经常会用到它的连接池组件。典型的代码如下: PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…...
万字长文详解|蚂蚁数据湖深度探索与业务应用实践
作者介绍:黄超傑,蚂蚁数据智能部实时数据团队数据研发工程师,致力于数据湖技术在蚂蚁落地应用、蚂蚁广告实时数仓建设、蚂蚁数据成本治理等工作。 在开始之前 如果: 你想要提升数据时效,能够接受分钟级延迟你好奇准实…...
rk3568 以太网eth1 , 定制板 phy调试问题。
问题: 客户定制底板的 phy 网络不通。 解决逻辑: phy 问题, 就是 照着 公司底板对硬件就行,完全是硬件问题,不用改 软件。 原理图如下:...
React相关面试题
以下是150道React面试题及其详细回答,涵盖了React的基础知识、组件、状态管理、路由、性能优化等多个方面,每道题目都尽量详细且简单易懂: React基础概念类 1. 什么是React? React是一个用于构建用户界面的JavaScript库ÿ…...
IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js
P(rocess)M(anager)2 是一个 node.js 下的进程管理器,内置负载均衡,支持应用自动重启,常用于生产环境运行 node.js 应用,非常好用👍 🌼概述 2025-03-15日,PM2发布最新版本v6.0.5,这…...
php 高性能,高并发,有哪些框架,扩展,推荐一下,或者技术的实现有哪些
以下是针对PHP高性能、高并发场景的框架、扩展及技术实现推荐,结合最新技术趋势和行业实践进行总结: 一、高性能框架推荐 1. C扩展类框架 YAF (Yet Another Framework) 特点:由C语言编写,直接嵌入PHP内核,仅提供核心M…...
golang单机锁实现
1、锁的概念引入 首先,为什么需要锁? 在并发编程中,多个线程或进程可能同时访问和修改同一个共享资源(例如变量、数据结构、文件)等,若不引入合适的同步机制,会引发以下问题: 数据竞…...
面试中JVM常被问到的问题以及对应的答案
在面试中,关于JVM常被问到的问题以及对应的答案可能包括: 什么是JVM?它的作用是什么? 答:JVM是Java虚拟机的缩写,是Java程序运行的环境。它负责将Java源代码编译成字节码并运行在不同平台上。 请解释一下J…...
算法——广度优先搜索——跨步迷宫
原题链接 思路:找出最短路径,然后判断是否存在连续三个点是横纵坐标相等的,如果有就步数减1 但是有两个样例过不了 错误原因:在错误的测试案例中,最短路径可能有多条,而我刚好选了一条比较曲折的&#x…...
Python pyqt+flask做一个简单实用的自动排班系统
这是一个基于Flask和PyQt的排班系统,可以将Web界面嵌入到桌面应用程序中。 系统界面: 功能特点: - 读取员工信息和现有排班表 - 自动生成排班表 - 美观的Web界面 - 独立的桌面应用程序 整体架构: 系统采用前后端分离的架构…...
链表操作:分区与回文判断
目录 链表分区(Partition) 功能概述 代码实现 要点与难点 注意事项 链表回文判断(PalindromeList) 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中,理解链表的基本结构和操作至关重要…...
基于大模型的腮腺多形性腺瘤全周期诊疗方案研究报告
目录 一、引言 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服务器证书
在数字化时代,网络安全已成为企业不可忽视的重要环节。SSL(Secure Sockets Layer,安全套接层)服务器证书作为保障网站数据传输安全的关键工具,其选择和使用至关重要。 一、SSL证书类型:基础与进阶 SSL证书…...
STC89C52单片机学习——第26节: [11-2]蜂鸣器播放音乐
写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.19 51单片机学习——第26节: [11-2]蜂鸣器播放音乐 前言开发板说明引用解答和科普一…...
ABC396题解
A 算法标签: 模拟 问题陈述 给你一个长度为 N N N 的整数序列: A ( A 1 , A 2 , … , A N ) A (A_1, A_2, \ldots, A_N) A(A1,A2,…,AN)。 请判断在 A A A 中是否有相同元素连续出现三次或三次以上的位置。 更正式地说,请判断是否存在一个整…...
如何用Python和Selenium实现表单的自动填充与提交?
在今天的数字化时代,自动化工具可以极大地提高工作效率。很多人可能会觉得填表单是个繁琐的任务,不过你知道吗?用Python和Selenium可以轻松解决这一问题!本文将带你走进如何利用这两个强大的工具,实现表单的自动填充和…...
使用`plot_heatmap`绘制热力图时
在Python中,使用plot_heatmap绘制热力图时,颜色图例(colorbar)的定制化设置是关键步骤。以下是实现方法及优化建议: 一、基础图例绘制 自动生成颜色条 使用seaborn.heatmap()时,默认会生成颜色条࿰…...
极简桌面待办清单软件,❌不会增加工作量
工作邮件、会议安排、生活琐事……事情多到根本记不住,又怕错过重要事项,焦虑感油然而生。相信这是很多职场朋友遇到的问题,也急需一款好用的极简桌面待办清单软件来辅助我们。 今天我要给大家推荐一款拯救我们于水火的神器——好用便签&…...
QT学习笔记4
一、音视频播放(Qt Multimedia) 1. 多媒体框架架构 核心类关系 : 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、查找二叉树(二叉排序树)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写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。 标志掌握程度解释办法⭐Fully 完全掌握看到题目就有思路,编程也很流利⭐⭐Basically 基本掌握需要稍作思考,或者看到提示方法后能解答⭐⭐⭐Sl…...
该错误是由于`KuhnMunkres`类未定义`history`属性导致的
该错误是由于KuhnMunkres类未定义history属性导致的。以下是具体分析及解决方案: 错误原因分析 属性缺失 代码中试图访问km.history,但KuhnMunkres类未在初始化或算法执行过程中定义该属性,因此触发AttributeError。动画实现逻辑不完整 用户…...
DAPO:一个开源的大规模大型语言模型LLM强化学习系统
推断扩展赋予了大型语言模型前所未有的推理能力,强化学习作为激发复杂推理的核心技术,清华大学联合字节提出了解耦片段与动态采样策略优化(DAPO)算法,并全面开源了一个最先进的大规模强化学习系统,该系统使用Qwen2.5-32B基础模型在AIME 2024上取得了50分的高分。还开源了…...
数据结构中的引用管理对象体系
数据结构中的引用管理对象体系 (注:似复刻变量即实例对象) 引用管理对象的,有引用就能管理到它所指向的对象,我们拿引用最终的目的就是管理那些我们需要管理的最终直接对象,引用也是对象,同时…...
【自学笔记】智能合约基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 智能合约基础知识点总览目录1. 智能合约简介2. 以太坊与Solidity示例代码:Hello World智能合约 3. Solidity基础语法示例代码:简单的计数器合…...
Linux的Shell编程
一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个…...
【八股文】volatile关键字的底层原理是什么
volatile只能保证可见性和有序性 volatile如何保证可见性 当对volatile变量进行写操作的时候,JVM会向处理器发送一条lock前缀的命令,将这个缓存中的变量会写到系统内存中。 所以,如果一个变量被volatile所修饰,每次数据变化之后…...
一种基于大规模语言模型LLM的数据分析洞察生成方法
从复杂数据库中提取洞察对数据驱动决策至关重要,但传统手动生成洞察的方式耗时耗力,现有自动化数据分析方法生成的洞察不如人工生成的有洞察力,且存在适用场景受限等问题。下文将介绍一种新的方法,通过生成高层次问题和子问题,并使用SQL查询和LLM总结生成多表数据库中的见…...