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

openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0

openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0

  • 1、配置 yum 华为源
  • 2、安装依赖
  • 3、源码安装 openssl 1.0.1u
    • 3.1、openssl 1.1.1 降级到 openssl 1.0.1
  • 4、源码安装 python 2.7
  • 5、使用 pip3 安装 Python 相关依赖
  • 6、编译安装 Greenplum-db 6.20.0
    • 6.1、修改配置
    • 6.2、基于 GPORCA 构建
    • 6.3、不基于 GPORCA 构建
  • 7、Greenplum-db 6.20.0 使用
    • 7.1、安装 greenplum 单机版(1 master,2 segment)
      • 7.1.1、关闭 SELINUX
      • 7.1.2、关闭防火墙
      • 7.1.3、安装单机版GP
        • 7.1.3.1、改机器名
        • 7.1.3.2、创建 gpaadmin 用户和用户组
        • 7.1.3.3、配置内核参数
        • 7.1.3.4、修改 limits
      • 7.1.4、gp 安装
        • 7.1.4.1、设置 host
        • 7.1.4.2、设置 gp6 环境变量
        • 7.1.4.3、创建 instance 需要的目录
        • 7.1.4.4、切换用户 gpadmin
        • 7.1.4.5、权限互通
        • 7.1.4.6、初始化 GP
      • 7.1.5、连接GP
    • 7.2、安装 greenplum 单机集群(1 master,2 slave,2 mirror)
      • 7.2.1、创建用户组
      • 7.2.2、设置 host
      • 7.2.3、创建 instance 需要的目录
      • 7.2.4、初始化 GP

1、配置 yum 华为源

cd /etc/yum.repos.d/
mkdir -p repobak
mv -f *.repo repobak
vi /etc/yum.repos.d/openEuler.repo

openEuler.repo

#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
#    http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.[OS]
name=OS
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler[everything]
name=everything
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/everything/$basearch/RPM-GPG-KEY-openEuler[EPOL]
name=EPOL
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler[debuginfo]
name=debuginfo
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/debuginfo/$basearch/RPM-GPG-KEY-openEuler[source]
name=source
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/source/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/source/RPM-GPG-KEY-openEuler[update]
name=update
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler

2、安装依赖

yum install -y apr-devel bison bzip2-devel cmake3 flex gcc gcc-c++ krb5-devel libcurl-devel libevent-devel libkadm5 libyaml-devel libxml2-devel libzstd-devel openssl-devel perl-ExtUtils-Embed readline-devel xerces-c-devel zlib-devel ncurses-devel sqlite-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel python-setuptools make git python3-devel python-pip tar pam pam-devel

cmake >= 3.1 !!!

3、源码安装 openssl 1.0.1u

3.1、openssl 1.1.1 降级到 openssl 1.0.1

在这里插入图片描述

# 备份文件
mv /usr/bin/openssl /usr/bin/openssl.old
mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
# 下载源码
cd /usr/local/
wget -O openssl-1.0.1u.tar.gz https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
tar -xzf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u
mkdir -p /usr/local/openssl /usr/local/ssl# 编译安装 
CFLAGS="-fPIC" ./config shared zlib-dynamic --prefix=/usr/local/openssl --openssldir=/usr/local/ssl && make -j4 && make -j4 install# 注意,部分电脑会编译生成 /usr/local/openssl/lib64,复制前看一下目录名称!ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
cp -f /usr/local/openssl/lib/libssl.so.1.0.0 /usr/lib64/
cp -f /usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/
# 生成软链接
ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
openssl versioncd /usr/local
rm -rf /usr/local/openssl-1.0.1u

在这里插入图片描述

4、源码安装 python 2.7

# 下载python安装包
cd /usr/local/
wget -O Python-2.7.18.tar.xz https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
# 解压安装包
tar -xf Python-2.7.18.tar.xz
cd Python-2.7.18

优化编译命令

# ./configure --enable-shared --prefix=/usr/local/python2
# --prefix=*** :指定了python的安装目录
# --enable-shared :配置构建选项的命令,构建过程中启用共享库支持(默认带上,否则后续无法使用打包工具)
# --enable-optimizations:启用优化,对Python进行一些优化以提高性能。
# 执行configure文件,指定安装位置/usr/local/python2
# 注意,部分电脑会编译生成 /usr/local/openssl/lib64,复制前看一下目录名称!
./configure --enable-shared --prefix=/usr/local/python2 --enable-optimizations LDFLAGS="-L/usr/local/openssl/lib" CPPFLAGS="-I/usr/local/openssl/include" PKG_CONFIG_PATH="/usr/local/openssl/lib/pkgconfig"

不进行优化编译命令

#注意,部分电脑会编译生成 /usr/local/openssl/lib64,复制前看一下目录名称!
./configure --enable-shared --prefix=/usr/local/python2 LDFLAGS="-L/usr/local/openssl/lib" CPPFLAGS="-I/usr/local/openssl/include" PKG_CONFIG_PATH="/usr/local/openssl/lib/pkgconfig"
# 编译安装
make -j4 && make -j4 install# 将默认/usr/local/lib/路径添加到动态链接器的配置文件,并通过ldconfig更新缓存
# 路径根据实际路径替换,例如:/usr/local/python3/lib/
echo "/usr/local/python2/lib/" >> /etc/ld.so.conf
ldconfig# 删除源代码
cd /usr/local
rm -rf /usr/local/Python-2.7.18# 生成软链接
ln -s /usr/local/python2/bin/python2.7 /usr/bin/python# 安装pip
wget -O get_pip.py https://bootstrap.pypa.io/pip/2.7/get-pip.py --no-check-certificate
python get_pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple/# 更新pip,可选
/usr/local/python2/bin/pip2.7 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade pip# 安装wheel
/usr/local/python2/bin/pip2.7 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ wheel

安装 psutil

# 安装psutil,必装,不然数据库会初始化失败
/usr/local/python2/bin/pip2.7 install psutil  -i https://pypi.tuna.tsinghua.edu.cn/simple/

5、使用 pip3 安装 Python 相关依赖

openEuler 22.03 自带Python 3.9.9,使用自带的pip安装依赖

cd /usr/local
wget -O 6.20.0.tar.gz https://github.com/greenplum-db/gpdb/archive/refs/tags/6.20.0.tar.gz
tar -zxvf 6.20.0.tar.gz
cd gpdb-6.20.0
# 使用清华源安装conan
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ conan

修改文件 python-dependencies.txt,调整依赖为以下版本

argparse==1.2.1
behave==1.2.6
epydoc==3.0.1
logilab-astng==0.24.3
logilab-common==1.9.7
MarkupSafe==2.0.1
mock==1.0.1
parse==1.8.2
psutil==4.0.0
setuptools==42.0.0
unittest2==1.1.0
pyyaml==6.0.1

安装依赖

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r python-dependencies.txt

修改文件 python-developer-dependencies.txt,调整依赖为以下版本

enum34==1.1.6
Jinja2==3.0.3
parse-type==0.4.2
pexpect==4.4.0
PSI==0.3b2
PyYAML==6.0.1
ptyprocess==0.5.2
six==1.11.0

安装依赖

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r python-developer-dependencies.txt

6、编译安装 Greenplum-db 6.20.0

6.1、修改配置

ln -sf /usr/bin/cmake3 /usr/local/bin/cmake
echo "/usr/local/lib" >> /etc/ld.so.conf
echo "/usr/local/lib64" >> /etc/ld.so.confldconfig

修改配置

cat >> /etc/sysctl.conf <<-EOF
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 500 1024000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
EOF

使生效

sysctl -p

修改 limits

cat >> /etc/security/limits.conf <<-EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
EOF

6.2、基于 GPORCA 构建

下载 gp-xerces 编译

cd /usr/local
git clone https://github.com/greenplum-db/gp-xerces.git
cd gp-xerces
mkdir build
cd build
../configure --prefix=/usr/local/build-gp-xerces
make -j4 && make -j4 install
echo "/usr/local/build-gp-xerces/lib" >> /etc/ld.so.conf
ldconfig
cd /usr/local
rm -rf /usr/local/gp-xerces

编译 gpdb

cd /usr/local/gpdb-6.20.0
PYTHON=/usr/bin/python3 ./configure --with-perl --with-python --with-libxml --prefix=/usr/local/gpdb --with-includes=/usr/local/build-gp-xerces/include --with-libraries=/usr/local/build-gp-xerces/lib --with-pam --enable-cassert --enable-depend

安装

make -j8 && make -j8 install

在这里插入图片描述

6.3、不基于 GPORCA 构建

cd /usr/local/gpdb-6.20.0
# make distclean# 安装到 /usr/local/gpdb
PYTHON=/usr/bin/python3 ./configure --disable-orca --with-perl --with-python --with-libxml --prefix=/usr/local/gpdb  --with-pam --enable-cassert --enable-dependmake -j8 && make -j8 install

7、Greenplum-db 6.20.0 使用

编译出来的可执行文件在 /usr/local/gpdb 目录中,需要拷贝到部署的机器上
注意,有符号连接,不能 scp 直接拷贝目录,需要 tar 压缩后再拷贝、解压

7.1、安装 greenplum 单机版(1 master,2 segment)

7.1.1、关闭 SELINUX

vi /etc/selinux/config
SELINUX=disabled

在这里插入图片描述

7.1.2、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

7.1.3、安装单机版GP

1 master,2 segment
gp安装准备

7.1.3.1、改机器名
#查机器名
uname -a
#改名为master
hostnamectl set-hostname master

在这里插入图片描述

7.1.3.2、创建 gpaadmin 用户和用户组
groupadd -g 3030 gpadmin
useradd -u 3030 gpadmin -g gpadmin -d /home/gpdata
mkdir -p /home/gpdata
passwd gpadmin
# (密码123456)
#补充知识点:删除 groupdel gpadmin userdel gpadmin
7.1.3.3、配置内核参数
vim /etc/sysctl.conf

以下面内容覆盖原有内容:

kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

使生效

sysctl -p
7.1.3.4、修改 limits
vim /etc/security/limits.conf

以下面内容覆盖:

soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072

7.1.4、gp 安装

7.1.4.1、设置 host
vi /etc/hosts

添加:192.168.100.161 master
在这里插入图片描述
192.168.100.161 这里更改成你自己的ip地址

vi /etc/sysconfig/network

添加:hostname=master
在这里插入图片描述

7.1.4.2、设置 gp6 环境变量
su gpadmin
cd /usr/local/gpdb
source greenplum_path.sh
7.1.4.3、创建 instance 需要的目录
mkdir -p /home/gpdata
mkdir -p /home/gpdata/master
mkdir -p /home/gpdata/gp3
mkdir -p /home/gpdata/gp4#修改目录属主
chown -R gpadmin:gpadmin /home/gpdata
chown -R gpadmin:gpadmin /home/gpdata/master
chown -R gpadmin:gpadmin /home/gpdata/gp*

7.1.4.4、切换用户 gpadmin
chown -R gpadmin:gpadmin /usr/local/gpdb
su gpadmin

进入$开头的bash环境

cd ~
vi ~/.bash_profile

添加以下

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpdata/master/gpseg-1
vi ~/.bashrc

添加以下

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpdata/master/gpseg-1

7.1.4.5、权限互通
su gpadmin
cd /usr/local/gpdb/
vi all_host_list

添加一行
master
在这里插入图片描述

su gpadmin
python /usr/local/gpdb/bin/gpssh-exkeys -f /usr/local/gpdb/all_host_list

在 ~/.ssh 目录下生成一对密匙

su gpadmin
rm -rf ~/.ssh
ssh-keygen -t rsa

输入该命令后会有提示,一直回车即可

将公共密匙保存到authorized_keys文件中,实现对自身免密码登录

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

修改权限,需要修改 ~/.ssh 文件夹和 authorized_keys 文件的,不然会报不允许的错误或者无法出现 know_hosts 文件

chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keyssystemctl restart sshd

7.1.4.6、初始化 GP
vi /usr/local/gpdb/seg_hosts_file

写入:
master
本例单机,只有master 这一台

vi /usr/local/gpdb/initgp_config

添加以下内容

ARRAY_NAME="GPDB SINGLENODE"
declare -a DATA_DIRECTORY=(/home/gpdata/gp3 /home/gpdata/gp4)
MASTER_DIRECTORY=/home/gpdata/master
MASTER_HOSTNAME=master
SEG_PREFIX=gpseg
PORT_BASE=33000
MASTER_PORT=5432
DATABASE_NAME=gpdb
MACHINE_LIST_FILE=/usr/local/gpdb/seg_hosts_file
ENCODING=UNICODE
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8

初始化GP

/usr/local/gpdb/bin/gpinitsystem -c /usr/local/gpdb/initgp_config -h /usr/local/gpdb/all_host_list

7.1.5、连接GP

基本使用:https://www.cnblogs.com/kingle-study/p/10550785.html

/usr/local/gpdb/bin/gpstate -c

在这里插入图片描述

/usr/local/gpdb/bin/gpstate -s

在这里插入图片描述
登录数据库之前得先将程序运行,执行

/usr/local/gpdb/bin/gpstart

查询所有数据库

/usr/local/gpdb/bin/psql -l 

在这里插入图片描述

附录
其他启停命令

  • gpstate #查看服务状态
  • gpstart #正常启动
  • gpstop #正常关闭
  • gpstop -M fast #快速关闭
  • gpstop r #重启

服务器重启后需要在 gpadmin 用户下用 gpstart 启动 gp 服务!!!

7.2、安装 greenplum 单机集群(1 master,2 slave,2 mirror)

7.2.1、创建用户组

groupadd gpadmin
useradd gpadmin -g gpadmin
passwd gpadmin

7.2.2、设置 host

su root
# ip要改成本机ip
cat >> /etc/hosts << EOF
192.168.102.30 mdw sdw1 sdw2
EOF
mkdir -p /home/gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
su - gpadmin
cat >>  /home/gpadmin/hostlist << EOF
mdw
sdw1
sdw2
EOF
cat >>  /home/gpadmin/seg_hosts << EOF
sdw1
sdw2
EOF
su gpadmin
cd ~
vi ~/.bash_profile

添加以下

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpadmin/mdw/gpseg-1
vi ~/.bashrc

添加以下

source /usr/local/gpdb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpadmin/mdw/gpseg-1

7.2.3、创建 instance 需要的目录

su root
mkdir -p /data/gpadmin/mdw
mkdir -p /data/gpadmin/sdw1
mkdir -p /data/gpadmin/sdw1_mirror
mkdir -p /data/gpadmin/sdw2
mkdir -p /data/gpadmin/sdw2_mirror
chown gpadmin:gpadmin /data/gpadmin -R

7.2.4、初始化 GP

su gpadmin
cat >> /home/gpadmin/gpinitsystem_config << EOF
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=33000
declare -a DATA_DIRECTORY=(/data/gpadmin/sdw1 /data/gpadmin/sdw2)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/gpadmin/mdw
MASTER_PORT=5432
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=43000
REPLICATION_PORT_BASE=34000
MIRROR_REPLICATION_PORT_BASE=44000
declare -a MIRROR_DATA_DIRECTORY=(/data/gpadmin/sdw1_mirror /data/gpadmin/sdw2_mirror)
EOF
gpinitsystem -c /home/gpadmin/gpinitsystem_config

在这里插入图片描述

gpstate -c

在这里插入图片描述

psql -l

在这里插入图片描述

相关文章:

openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0

openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0 1、配置 yum 华为源2、安装依赖3、源码安装 openssl 1.0.1u3.1、openssl 1.1.1 降级到 openssl 1.0.1 4、源码安装 python 2.75、使用 pip3 安装 Python 相关依赖6、编译安装 Greenplum-db 6.20.06.1、修改配置6.2、基于…...

天锐蓝盾多模式加密技术,构筑企业数据安全堡垒

一旦企业发生数据泄露&#xff0c;将遭受严重的经济损失&#xff0c;声誉也会一落千丈&#xff0c;甚至可能在激烈的竞争中陷入绝境。那么&#xff0c;企业究竟该如何守护敏感数据&#xff0c;筑牢数据安全的 “护城河” 呢&#xff1f;天锐蓝盾数据泄露防护系统给出了全面且专…...

可编辑37页PPT | 建筑行业DeepSeek日常实操培训

荐言摘要&#xff1a;随着人工智能技术的快速发展&#xff0c;DeepSeek作为一款具有创新性的AI工具&#xff0c;正逐步渗透到建筑行业的各个环节。为帮助建筑行业从业者掌握DeepSeek的核心功能与应用技巧&#xff0c;提升工作效率与决策能力&#xff0c;特推出本次建筑行业Deep…...

C语言指针和函数

文章目录 C语言指针和函数一、指针与函数1.传递指针给函数2.指针函数3.函数指针4.回调函数 二、多级指针三、空指针四、野指针 C语言指针和函数 在C语言的编程领域中&#xff0c;指针是一把强大而又危险的“双刃剑”。它不仅能够直接操作内存&#xff0c;提升程序的运行效率&a…...

左右开弓策略思路

一、策略概述 本策略是一种基于多种技术指标的复杂交易策略&#xff0c;包括自定义指标计算、过滤平滑处理以及交易信号生成。 该策略通过不同的交易平台代码段实现&#xff0c;旨在通过分析历史价格数据来预测未来价格走势&#xff0c;并据此生成交易信号。 二、主要技术指标…...

mapbox基础,加载F4Map二维地图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性二、🍀F4Map 简介2.1 ☘️技术特点2.2 ☘️核…...

doxygen自动生成文档,注释容易错位的补充

开发过程中&#xff0c;为了简化api开发文档的编写工作&#xff0c;我们可以使用doxygen的标注来进行文档注释&#xff0c;最后自动化的生成相关文档&#xff1a; 参考&#xff1a;https://developer.aliyun.com/article/935529 参考&#xff1a;https://blog.csdn.net/qq_3459…...

git操作0409

git init git add. git commit -m "Initial commit" git checkout 7890abc # 切换到旧版本代码&#xff08;只读&#xff09; git checkout master # 切回最新版本 git checkout -b new_branch 789abcd # 或 git checkout -b new_branch HEAD~3 很重点 git reflog …...

电阻的额定功率与额定电压详解

一、基本定义 额定功率&#xff08;Rated Power&#xff09; 定义&#xff1a;电阻在长期安全工作时允许消耗的最大功率&#xff0c;超过此值可能导致过热甚至烧毁。 公式&#xff1a; P I R 或 P V / R &#xff08;I&#xff1a;电流&#xff0c;V&#xff1a;电压&#…...

【后端开发】SpringBoot与Spring MVC

文章目录 创建项目目录介绍Spring MVCservletMVCSpring MVCSpringboot与Spring MVC的区别Spring MVC交互 创建项目 新建一个Springboot项目 对应描述 目录介绍 src/main/java&#xff1a;Java 源代码 src/main/resources&#xff1a;为静态资源或配置⽂件&#xff1a; ----…...

如何禁用 PyCharm 的测试功能

如何禁用 PyCharm 的测试功能&#xff1f; PyCharm 的测试功能默认会自动检测项目中符合命名规则的测试文件&#xff08;如以 test_ 开头的文件&#xff09;并关联测试框架。若需禁用该功能&#xff0c;可通过以下方法操作&#xff1a; 方法一&#xff1a;全局禁用默认测试框架…...

【Spiffo】光速项目:LVGL v9框架下的MIPI简易相机_Part2

简介 本期接上回的工程部署讲一下整个工程的框架逻辑以及相关的模块作用机制&#xff0c;包括mipi抓图像以及后续传递到显示屏的链路逻辑等。 一、核心逻辑 1、如何抓到图像数据并显示 首先能够从摄像头捕获画面并显示是一个相机最起码要能实现的功能。所以先要搞清楚整个链…...

pycharm编译部署智能合约(solcx与web3搭配)

solcx 是一个 python 库,提供了 solidity 编译器的 python 绑定。它使开发者能够直接从 python 中编译 solidity 源代码,生成以太坊智能合约的字节码(Bytecode)和 ABI(Application Binary Interface)。这个库通常用于与 Web3 库配合使用,帮助开发者进行智能合约的部署、…...

微信小程序中的openid的作用

微信小程序中的openid的作用 引言 在当今数字化时代&#xff0c;用户体验成为了产品成功与否的关键因素之一。微信小程序作为连接用户与服务的重要桥梁&#xff0c;在提升用户体验方面发挥着重要作用。其中&#xff0c; openid&#xff08;开放身份标识符&#xff09;是微信小…...

AAAI 2025新研究!大语言模型+MARL=论文新思路?

最新研究显示&#xff0c;多智能体强化学习&#xff08;MARL&#xff09;正迎来一系列技术革新&#xff0c;让AI系统真正具备“群体智能”。同济大学团队提出的动态图通信网络&#xff08;TGCNet&#xff09;&#xff0c;通过Transformer建模智能体间的动态协作关系&#xff0c…...

旅行世界宠物养殖合成游戏源码

旅行世界宠物养殖合成游戏源码&#xff0c;游戏养成类系统&#xff0c;用户能够通过养狗和参加其他活动获取算力&#xff0c;每日任务不断更新&#xff0c;完结即可收取算力&#xff0c;算力能够兑换现金红包。 邀请好友得两级活跃收益提成&#xff0c;徒弟B100.%&#xff0c;徒…...

列表之链表_C

数据结构&#xff08;邓俊辉&#xff09;&#xff1a;列表及相关概念_listnodeposi-CSDN博客 #include <stdio.h> #include <stdlib.h>// 定义Rank类型为int typedef int Rank;// 定义ListNode结构体 typedef struct ListNode {int data;struct ListNode* pred;st…...

图解Java设计模式

1、设计模式面试题 2、设计模式的重要性 3、7大设计原则介绍...

CCF GESP Python编程 四级认证真题 2025年3月

Python 四级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 D C B C D C A A D B D A C B C 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 2025年春节有两件轰动全球的事件&#xff0c;一个是DeepSeek横空出世&#xff0c;另一个是…...

2025最新系统 Git 教程(四)

2.6 Git 基础 - 打标签 打标签 像其他版本控制系统&#xff08;VCS&#xff09;一样&#xff0c;Git 可以给仓库历史中的某一个提交打上标签&#xff0c;以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点&#xff08; v1.0 、 v2.0 等等&#xff09;。 在本节中…...

数学知识——欧拉函数

欧拉函数 1 ∼ N 1∼N 1∼N 中与 N N N互质的数的个数被称为欧拉函数&#xff0c;记为 ϕ ( N ) \phi(N) ϕ(N)。 欧拉函数 对于 N p 1 α 1 p 2 α 2 p 3 α 3 . . . p k α k Np_1^{\alpha_1}p_2^{\alpha_2}p_3^{\alpha_3}...p_k^{\alpha_k} Np1α1​​p2α2​​p3α3​​…...

Dify 识别 “subject“ and “intention“ 的提示词

Dify 识别 "subject" and "intention" 的提示词 内容如下&#xff1a; You need to decompose the users input into "subject" and "intention" in order to accurately figure out what the users input language actually is. Not…...

Hi168云平台部署Ansible学习环境

前言 之前发布的文章已经介绍过了在Hi168云平台部署openEuler学习环境&#xff0c;那么既然能部署openEuler了&#xff0c;其他的各类学习环境自然也就可以部署了。 Ansible简介 Ansible 是一个运维自动化工具&#xff0c;可以通过 SSH 协议对远程主机进行管理&#xff0c;对…...

Anacond虚拟环境里安装GPU版本Pytorch

CUDA/cudnn/CUDAToolkit简单区分 pytorch与cuda关系简单介绍 pytorch是一个深度学习的框架&#xff0c;能够调用cuda进行gpu加速。一般来说你的电脑里是有相关cuda的驱动的&#xff08;可用nvidia-smi命令验证&#xff0c;能运行就说明有&#xff0c;不能运行去搜索安装&#…...

FRP的proxies只是建立通道,相当于建立与服务器沟通的不同通道而不是直接将路由器与服务器云端沟通

没有更好的办法了吗&#xff0c;我看frpc.toml的里面可以设置两个proxies那我esp32的监听端口设置在frpc.toml里面它不也能跟云服务器建立联系吗&#xff0c;比如远程与本地端口都配置为5112那云服务器接收到的5112访问会以frp配置的本地端口5112转发到frp客户端的路由器&#…...

Android开发鸿蒙环境问题记录

Android开发鸿蒙环境问题记录 &#xff08;用于记录开发中鸿蒙环境差异及问题&#xff0c;持续更新&#xff09; 2025.4.9 问题 使用android.intent.action.TIME_TICK广播时&#xff0c;动态注册在鸿蒙4.0系统正常&#xff0c;但在鸿蒙3.0系统无法接收广播。 解决方案 在An…...

在 WSL2的 Ubuntu 20.04 中安装 Docker

WSL1升级到WSL2参考&#xff1a;WSL1升级到WSL2注意事项-CSDN博客 1. 更新系统包 首先&#xff0c;确保系统包是最新的&#xff1a; sudo apt update sudo apt upgrade -y sudo apt upgrade -y 是 Ubuntu/Debian Linux 系统中的一条命令&#xff0c;用于升级所有已安装的软…...

LeetCode 252 会议室题全解析:Swift 实现 + 场景还原

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在这篇文章中&#xff0c;我们将深入探讨LeetCode第252题“会议室”的问题&#xff0c;提供一个用Swift编写的解决方案&#xff0c;并结合实际场景进行分析。通过这篇文章&#xff0c;你将…...

Postman的内网使用教程

在软件开发和测试过程中&#xff0c;接口测试是确保系统间通信正常的重要环节。当处于内网环境&#xff0c;无法直接访问外网资源时&#xff0c;如何高效地使用Postman进行接口测试也逐渐成为许多开发者关心的问题。 前期准备 安装Postman 从官方网站下载并安装最新版本的Pos…...

【软件测试】Postman中如何搭建Mock服务

在 Postman 中&#xff0c;Mock 服务是一项非常有用的功能&#xff0c;允许你在没有实际后端服务器的情况下模拟 API 响应。通过创建 Mock 服务&#xff0c;你可以在开发阶段或测试中模拟 API 的行为&#xff0c;帮助团队成员进行前端开发、API 测试和集成测试等工作。 Mock 服…...

【NLP 57、LLM通用能力评价方式】

人生如题&#xff0c;放下&#xff0c;是最优雅的解法 —— 25.4.9 目前&#xff0c;我们通过一些特殊的“集合”来评价大语言模型效果 一、MMLU 集合 测量大规模多任务语言理解 评估模型在57个学科领域的综合知识理解能力&#xff0c;覆盖人文、社科、STEM&…...

centos7.9升级OpenSSL 1.1.1

centos7.9升级openssl 人工智能已经很准了&#xff1a; 问题&#xff1a; [rootcentos01 ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 [rootcentos01 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 需要升级OpenSSL&#xff0c;请给出具体…...

10A 大电流 DCDC 降流芯片 WD5030

10A 大电流 DCDC 降压芯片 WD5030 在电子设备的电源管理领域&#xff0c;高效稳定的 DCDC 芯片至关重要。今天我们来深入探讨一款性能卓越的 10A 大电流 DCDC 降流芯片 ——WD5030。它在众多电子应用场景中展现出了强大的优势&#xff0c;为各类设备的稳定供电提供了可靠保障。…...

# 基于BERT的文本分类

基于BERT的文本分类项目的实现 一、项目背景 该文本分类项目主要是情感分析&#xff0c;二分类问题&#xff0c;以下是大致流程及部分代码示例&#xff1a; 二、数据集介绍 2.1 数据集基本信息 数据集自定义类型二分类&#xff08;正面/负面&#xff09;样本量训练集 验证…...

Verilog学习-1.模块的结构

module aoi(a,b,c,d,f);/*模块名为aoi&#xff0c;端口列表a、b、c、d、f*/ input a,b,c,d;/*模块的输入端口为a,b,c,d*/ output f;;/*模块的输出端口为f*/ wire a,b,c,d,f;/*定义信号的数据类型*/ assign f~((a&b)|(~(c&d)));/*逻辑功能描述*/ endmoduleveirlog hdl 程…...

界面控件DevExpress WPF v25.1新功能预览 - 数据网格、报表性能增强

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

【创新实训个人博客】prompt嵌入

通过对camel技术的理解&#xff0c;修改了项目内容 能够初步实现广告内容相关的文本 修改了typing.py中的定义 class RoleType(Enum): ASSISTANT "assistant" USER "user" CRITIC "critic" EMBODIMENT "embodiment" DEFAULT &q…...

Linux 进程的替换

进程程序替换 要讲好这个我为大家准备了五个步骤 1. 先用代码给大家展示一下现象 2.解释原理 3.将代码改成多进程版 4.使用所有的方法&#xff0c;并认识函数参数的含义。 5.其他 我们现在开始第一个 1. 先用代码给大家展示一下现象 关于进程的替换一共有七个函数&…...

netty启用websocket的压缩机制

netty启用websocket的压缩机制 package com.aerotop.connector.websocket.base;import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.compression.JZlibDec…...

【python】针对Selenium中弹框信息无法定位的问题,以下是综合解决方案及注意事项:

一、常见原因分析 1.1 弹窗类型不匹配 若弹窗为alert&#xff0c;需使用driver.switch_to.alert处理&#xff1b; 若为confirm或prompt&#xff0c;同样适用该方法。 1.2 窗口句柄切换问题 新窗口或弹窗可能开启新句柄&#xff0c;需先通过driver.window_handles切换到对应句…...

进程与信号

前言 接触计算机的时候我们就接触过信号。比如说当我们进程卡死的时候&#xff0c;windows系统会跳出来一个弹窗告诉我们是否等待进程响应&#xff0c;如果关闭进程那么系统就会发信号给进程然后终止掉它。再比如我们打开任务管理器的时候&#xff0c;想要关闭进程那也是在发送…...

SQL解析器:实现进阶功能

SQL解析器&#xff1a;实现进阶功能 在上一篇文章中&#xff0c;我们介绍了SQL解析器的基础架构和核心功能实现&#xff0c;包括基本的SELECT、INSERT、UPDATE语句解析。本文将深入探讨SQL解析器的进阶功能实现&#xff0c;重点关注我们新增的DROP、JOIN、DELETE语句解析以及嵌…...

字体从版权合规到技术适配,你好字库全场景解决方案解析

一、开发者字体使用的三大核心困境 在软件开发与设计过程中&#xff0c;字体选择往往成为「甜蜜的负担」&#xff1a; 版权风险高&#xff1a;商业项目误用未授权字体&#xff0c;可能面临数万元赔偿&#xff08;某创业公司曾因使用「方正粗黑」被索赔 8 万元&#xff09; …...

深入理解 Java ArrayList 扩缩容机制(含源码分析)

标签&#xff1a; Java, ArrayList, 集合框架, 源码分析, 扩容机制, 性能优化, CSDN 摘要&#xff1a; java.util.ArrayList 作为 Java 集合框架中最常用的类之一&#xff0c;其动态数组的特性深受开发者喜爱。然而&#xff0c;“动态”背后的扩容与缩容机制是怎样的&#xff…...

LeetCode详解之如何一步步优化到最佳解法:26. 删除有序数组中的重复项

LeetCode详解系列的总目录&#xff08;持续更新中&#xff09;&#xff1a; LeetCode详解之如何一步步优化到最佳解法&#xff1a;前100题目录&#xff08;更新中...&#xff09;-CSDN博客 LeetCode详解系列的上一题链接&#xff1a; LeetCode详解之如何一步步优化到最佳解法…...

doris基础使用

目录 1、一般使用 2、数据源通过catalog连接 1、es 2、clickhouse 3、db2 3、问题 &#xff08;1&#xff09;doris连接es一直报错 1、一般使用 &#xff08;1&#xff09;查询doris的catalog show catalogs; &#xff08;2&#xff09;查询catlog的连接信息 以catalog…...

Python 3.x cxfreeze打包exe教程

Python 3.x cxfreeze打包exe教程 https://blog.csdn.net/qq_33704787/article/details/123926953 去官网 下载安装 pip install cx-Freeze7.2.9 https://pypi.org/project/cx-Freeze/7.2.9/ 安装到 你的 python 的 script文件夹下面 &#xff08;全局或是 虚拟环境都行&#x…...

SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用

SQL 是一种至关重要的数据库操作语言&#xff0c;尽管其语法与通用编程语言有所不同&#xff0c;但因其在众多应用中的广泛使用&#xff0c;大多数程序员都具备一定的 SQL 编写能力。然而&#xff0c;当面对复杂的 SQL 语句或优化需求时&#xff0c;往往需要专业数据库开发工程…...

nginx或tengine服务器,配置HTTPS下使用WebSocket的线上环境实践!

问题描述&#xff1a; HTTPS 下发起WS连接&#xff0c;连接失败&#xff0c;Chrom 浏览器报错。 socket.js:19 Mixed Content: The page at https://app.XXX.com was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint ws://172.16.10.80:903…...

原创工具scoopex - scoop增强工具,提供github proxy和url净化功能

说明 scoop是一款十分优秀的windows下软件管理工具&#xff0c;但是在国内使用&#xff0c;总会遇到网络问题&#xff0c;不得不翻墙或者梯子才能解决。 网上有很多提供了cn版本的bucket&#xff0c;虽然解决了一些问题&#xff0c;但是也带来了默认proxy不可用问题&#xff0…...