织梦 网站复制/网页制作软件下载
📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 📣 1.Greenplum 7 的新功能
- ✨ 1.1 整合衍生
- ✨ 1.2 多种索引类型
- ✨ 1.3 增强数据联合
- ✨ 1.4 增强文本搜索
- ✨ 1.5 升级地理空间分析
- ✨ 1.6 行级安全权限
- ✨ 1.7 其他
- 📣 2.VMware Greenplum 的优势
- ✨ 2.1 灵活性
- ✨ 2.2 速度和规模
- ✨ 2.3 生产效率
- ✨ 2.4 弹性
- 📣 3.GP集群部署准备
- ✨ 3.1 安装包下载
- ✨ 3.2 IP及实例规划
- ✨ 3.3 操作系统
- ✨ 3.4 创建用户
- ✨ 3.5 host设置
- ✨ 3.6 配置互信
- ✨ 3.7 防火墙及安全服务
- ✨ 3.8 内核配置
- 📣 4.安装GP
- ✨ 4.1 安装依赖
- ✨ 4.2 安装rpm包
- ✨ 4.3 目录创建
- ✨ 4.4 数据库初始化
前言
2023年10月13日VMware中国研发中心宣布,VMware Greenplum 7 正式发布,目前使用GP的用户可进行升级体验。📣 1.Greenplum 7 的新功能
✨ 1.1 整合衍生
开放源代码和 PostgreSQL 12 的衍生:VMware Greenplum 7 建立在开源代码的基础上,利用了现代 PostgreSQL 版本的功能、可靠性和灵活性。与前一版本相比,Greenplum 7 植根于 PostgreSQL 12,并整合了近5年以来 PostgreSQL 的发布版本。
✨ 1.2 多种索引类型
VMware Greenplum 7 支持多种索引类型,包括 B 树索引、哈希索引、位图索引、块范围索引、文本索引、地理空间索引和 AI 向量索引。该功能可优化数据检索和查询性能。Greenplum 查询优化器自 2009 年以来不断改进,在第 6 版中取得了良好的性能记录,在第 7 版中得到了扩展,提供了全面的索引选择支持。
✨ 1.3 增强数据联合
利用 PXF 增强数据联合:VMware Greenplum 7 中的平台扩展框架 (PXF) 经过改进,实现了卓越的数据联合。企业现在可以通过 JDBC 查询亚马逊简单存储服务 (S3) 对象存储、Hadoop 分布式文件系统 (HDFS) 和其他关系数据库中的数据集。它利用 PostgreSQL 的外来数据封装器 API 来并行访问远程数据源,提供抽象数据模型来管理远程数据的安全性和统计数据,以优化查询。
✨ 1.4 增强文本搜索
VMware Greenplum 7 扩展了文本搜索功能,同时支持词法搜索和人工智能驱动的语义搜索,以提供更准确的搜索结果。词法搜索支持基于关键字的传统文本搜索,对于语义搜索,则由人工智能和向量 embeddings 提供支持。
✨ 1.5 升级地理空间分析
Mware Greenplum 7 通过集成 PostGIS 版本 3 升级了地理空间分析功能。这一改进大大提高了地理空间查询的速度和特征丰富度。
✨ 1.6 行级安全权限
该功能是对 VMware Greenplum 中已有的基于角色的安全模型以及表级和列级权限的补充。
✨ 1.7 其他
1)用于增强数据建模的生成列: VMware Greenplum 7 中引入了生成列,从而改进了数据抽象和建模,解决了安全特征保留数据屏蔽等用例问题。
2)改进的 DBA 查询功能: Greenplum 7 对 DBA 查询功能进行了大量改进,
包括 UPSERT 支持、带有事务的用户定义函数,以及对ALTER TABLE的改进以减少数据重写。
3)增强的半结构化和非结构化数据分析: Greenplum 7 除支持 XML 文档外,还支持半结构化数据处理,如增强的 JSON 和数组数据处理功能。全文搜索和基于文本的词法搜索索引可实现高效的文本存储、索引和搜索。此外,向量嵌入可实现非结构化数据的浓缩和高效表示,允许跨多种语言对匹配的文档、图像和视频进行相似性搜索,包括多语言搜索。
4)PostgreSQL 扩展生态系统: 更全面的PostgreSQL 扩展支持,如高级密码检查、模糊字符串匹配、Hyperloglog、用于网络数据的 Ip4r、用于媒体数据的 Isn、纳秒时间戳、稀疏向量、用于透视的 Tablefunc、用于唯一标识符的 UUID 以及用于人工智能向量嵌入的 pg_vector,已全部支持。
5)先进的资源管理: Greenplum 7 引入了一系列高级资源管理功能。这些功能可确保在高负载情况下的稳健性能。
6)VMware vSphere 部署模型: Greenplum 7 可以参考推荐的架构部署在裸机或公共云环境中。也可利用Greenplum 7版本中提供的自动部署模式无缝集成到vSphere私有云环境中。
7)多数据中心灾难恢复解决方案: 作为多数据中心灾难恢复解决方案的一部分,数据通过事务日志归档进行复制,从而实现比 Greenplum 以前版本更高效、更低的恢复点目标(RPO)和恢复时间目标(RTO)灾难恢复解决方案。
8)新的扩展 PostgresML:提供新的用户定义函数,使用户可以在 VMware Greenplum 中使用数以万计的开源人工智能/机器学习预训练模型。
📣 2.VMware Greenplum 的优势
VMware Greenplum 为企业带来的众多优势可分为四个关键领域:灵活性、速度和规模、生产效率以及弹性。
✨ 2.1 灵活性
基础架构的多功能性:VMware Greenplum 在部署方面具有显著的灵活性,可兼容各种基础架构类型。它针对裸机、公有云和基于 vSphere 的私有云环境进行了优化。这意味着企业可以选择最适合其需求的基础架构,而无需牺牲性能或效率。
专用优化:Greenplum 提供专用的参考架构,确保无缝集成到不同的基础架构设置中,降低部署复杂性。
✨ 2.2 速度和规模
数据库内分析:
Greenplum 的数据库内分析功能大大加快了透视时间。这一功能意味着数据分析师和科学家可以直接在数据库中原地进行复杂的分析,而无需进行耗时的数据传输。
PB 级数据处理:
Greenplum 可处理海量数据,甚至是 PB 级数据。这确保了企业能够高效地分析和管理庞大的数据集,从其最大的数据存储库中获取洞察力。
✨ 2.3 生产效率
数据多样性:
Greenplum 擅长在单一平台上管理各种类型的数据。它能无缝处理结构化、半结构化和非结构化数据,包括文本、图像、视频、向量、地理空间信息、图形和语音数据。这种多功能性使企业能够整合数据源,无论数据存储在哪里,都能更轻松地对其进行分析。
数据可访问性:
Greenplum 能够处理和分析来自不同来源的各种格式的数据,从而减少了预处理和整合来自多个来源的数据所需的时间和精力,提高了工作效率。
✨ 2.4 弹性
成熟的基础:
Greenplum 建立在开源数据库 PostgreSQL 的基础之上,这是一个久经考验的成熟数据库平台。这提高了关键任务应用程序和数据工作负载的可靠性和稳定性。
增强安全性:
Greenplum 集成了增强的安全功能,可帮助企业保护数据安全。这包括身份验证机制、加密选项和访问控制。
企业支持:
Greenplum 提供强大的企业级支持,使企业能够获得管理和优化数据平台所需的协助。
灾难恢复:
通过远程灾难恢复等功能,Greenplum 提供了数据备份和恢复机制,最大限度地减少了灾难发生时的停机时间和数据丢失。
📣 3.GP集群部署准备
✨ 3.1 安装包下载
1.Greenplum 的 GitHub
https://github.com/greenplum-db/gpdb/releases
2.Pivotal官网
https://network.pivotal.io/products/vmware-greenplum
✨ 3.2 IP及实例规划
IP | 主机名 | 端口 | 备注 |
---|---|---|---|
172.18.12.10 | mdw1 | 5432 | Master host |
172.18.12.11 | mdw2 | 5432 | Standby host |
172.18.12.12 | sdw1 | 主:6000-6003 镜像:7000-7003 | segment host1,配置4个主实例+4个镜像实例 |
172.18.12.13 | sdw2 | 主:6000-6003 镜像:7000-7003 | segment host2,配置4个主实例+4个镜像实例 |
172.18.12.14 | sdw3 | 主:6000-6003 镜像:7000-7003 | segment host3,配置4个主实例+4个镜像实例 |
172.18.12.15 | sdw4 | 主:6000-6003 镜像:7000-7003 | segment host4,配置4个主实例+4个镜像实例 |
✨ 3.3 操作系统
[root@mdw1 /]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@mdw1 /]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 447G 22G 407G 5% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
shm tmpfs 64M 0 64M 0% /dev/shm
/dev/mapper/centos-root00 ext4 447G 22G 407G 5% /etc/hosts
tmpfs tmpfs 1.9G 8.3M 1.9G 1% /run
[root@mdw1 /]# free -mtotal used free shared buff/cache available
Mem: 3770 1063 1375 67 1332 2357
Swap: 4995 0 4995[root@mdw1 /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:12:0c:0a brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.18.12.10/16 brd 172.18.255.255 scope global eth0valid_lft forever preferred_lft forever
✨ 3.4 创建用户
注意:为所有节点创建gpadmin用户
groupadd -g 1530 gpadmin
useradd -g 1530 -u 1530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo “gpadmin:jeames” | chpasswd
✨ 3.5 host设置
1. /etc/hosts设置1个master+1个standby master,4个segment的集群示例,OS均为CentOS Linux release 8.2.2004 (Core)注意:所有节点设置一致
cat >> /etc/hosts <<"EOF"
172.18.12.10 mdw1
172.18.12.11 mdw2
172.18.12.12 sdw1
172.18.12.13 sdw2
172.18.12.14 sdw3
172.18.12.15 sdw4
EOF2. all_hosts设置
为所有节点创建一个all_hosts文件,包含所有节点主机名
su - gpadmin
mkdir -p /home/gpadmin/conf/cat > /home/gpadmin/conf/all_hosts <<"EOF"
mdw1
mdw2
sdw1
sdw2
sdw3
sdw4
EOF3.seg_hosts设置
为所有节点创建一个seg_hosts文件 ,包含所有的Segment Host的主机名
su - gpadmincat > /home/gpadmin/conf/seg_hosts <<"EOF"
sdw1
sdw2
sdw3
sdw4
EOF
✨ 3.6 配置互信
集群ssh免密,只在master节点 172.18.12.10 操作
su - gpadmin
ssh-keygen -t rsa
ssh-copy-id gpadmin@mdw1
ssh-copy-id gpadmin@mdw2
ssh-copy-id gpadmin@sdw1
ssh-copy-id gpadmin@sdw2
ssh-copy-id gpadmin@sdw3
ssh-copy-id gpadmin@sdw4
✨ 3.7 防火墙及安全服务
# 每个节点机器 root 用户操作关闭防火墙yum install -y firewalldsystemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld##每个节点机器 root 用户操作,禁用selinuxcat /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targetedsed -i "s#^SELINUX=.*#SELINUX=disabled#g" /etc/selinux/config
注意:修改后记得重启
✨ 3.8 内核配置
cat /etc/sysctl.conf# kernel.shmall = _PHYS_PAGES / 2 # See Shared Memory Pages
kernel.shmall = 197951838
# kernel.shmmax = kernel.shmall * PAGE_SIZE
kernel.shmmax = 810810728448
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory
vm.overcommit_ratio = 95 # See Segment Host Memorycat > /etc/sysctl.conf <<"EOF"
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF##变量生效
sysctl -p
📣 4.安装GP
✨ 4.1 安装依赖
注意:所有节点均做操作,配置本地yum1.创建挂载路径
mkdir -p /mnt/cdrom2.挂载系统镜像光盘到指定目录
#因为光盘的格式通常是iso9660,意思是/dev/sr0挂载在/mnt/cdrom目录上
mount -t iso9660 /dev/sr0 /mnt/cdrom3.修改yum源配置文件
##编辑rhel8-local.repo文件,加入以下内容
[root@mdw1 ~]# cd /etc/yum.repos.d
[root@mdw1 yum.repos.d]# vi rhel8-local.repo[localREPO]
name=localhost8
baseurl=file:///mnt/cdrom/BaseOS
enable=1
gpgcheck=0[localREPO_APP]
name=localhost8_app
baseurl=file:///mnt/cdrom/AppStream
enable=1
gpgcheck=04.配置好后重建本地缓存
yum clean all
yum makecache
yum repolist##安装依赖包
yum install -y apr apr-util bash bzip2 curl iproute krb5-devel libcgroup-tools libcurl libevent libuuid libuv libxml2 \
libyaml libzstd openldap openssh openssh-client openssh-server openssl openssl-libs \
perl python3 python3-psycopg2 python3-psutil python3-pyyaml python39 \
readline rsync sed tar which zip zlib
✨ 4.2 安装rpm包
在所有节点操作,root用户操作
1.默认安装到/usr/local下
rpm -ivh open-source-greenplum-db-7.0.0-el8-x86_64.rpm
2.赋权,修改该路径gpadmin操作权限
chown -R gpadmin:gpadmin /usr/local/greenplum
✨ 4.3 目录创建
##创建目录,用作集群数据的存储目录,所有节点操作
mkdir -p /greenplum/data/
chown -R gpadmin:gpadmin /greenplum-- 所有节点
echo "/usr/local/greenplum-db/greenplum_path.sh" >> /home/gpadmin/.bashrc-- master配置
echo "export MASTER_DATA_DIRECTORY=/greenplum/data/master/gpseg-1" >> /home/gpadmin/.bashrc
echo "export PGDATABASE=postgres" >> /home/gpadmin/.bashrc# 使配置文件生效
source /home/gpadmin/.bashrc
✨ 4.4 数据库初始化
在master节点操作:创建一个初始化副本 initgp_config,修改参数:-- 在所有节点操作
(在master节点创建master目录,在segment节点分布创建primary目录和mirror目录
或3个目录创建都可以
su - gpadmin-- master节点,Standby节点
mkdir -p /greenplum/data/master-- segment节点
mkdir -p /greenplum/data/primary
mkdir -p /greenplum/data/mirror-- master节点配置,有几个segment节点就设置几个DATA_DIRECTORY
cat > /home/gpadmin/conf/initgp_config <<"EOF"
declare -a DATA_DIRECTORY=(/greenplum/data/primary /greenplum/data/primary)
declare -a MIRROR_DATA_DIRECTORY=(/greenplum/data/mirror /greenplum/data/mirror /greenplum/data/mirror /greenplum/data/mirror)
ARRAY_NAME="rptgp"
SEG_PREFIX=gpseg
PORT_BASE=6000
MIRROR_PORT_BASE=7000
MASTER_PORT=5432
MASTER_HOSTNAME=mdw1
MASTER_DIRECTORY=/greenplum/data/master
DATABASE_NAME=rptgpdb
MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
EOF--在master节点操作,执行初始化命令
su - gpadmin
gpinitsystem -c /home/gpadmin/conf/initgp_config -e=jeames -s mdw2 -P 5432 -S /greenplum/data/master/gpseg-1 -m 200 -b 256MB
相关文章:

分析智能平台VMware Greenplum 7 正式发布!
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
动态规划算法(3)--0-1背包、石子合并、数字三角形
目录 一、0-1背包 1、概述 2、暴力枚举法 3、动态规划 二、石子合并问题 1、概述 2、动态规划 3、环形石子怎么办? 三、数字三角形问题 1、概述 2、递归 3、线性规划 四、租用游艇问题 一、0-1背包 1、概述 0-1背包:给定多种物品和一个固定…...

Linux C/C++ 嗅探数据包并显示流量统计信息
嗅探数据包并显示流量统计信息是网络分析中的一种重要技术,常用于网络故障诊断、网络安全监控等方面。具体来说,嗅探器是一种可以捕获网络上传输的数据包,并将其展示给分析人员的软件工具。在嗅探器中,使用pcap库是一种常见的方法…...

Vitis导入自制IP导致无法构建Platform
怎么还有这种问题( 解决Vitis导入自制IP导致无法构建Platform – TaterLi 个人博客 Vitis报错:fatal error: xxx.h: No such file or directory._ly2lj的博客-CSDN博客 在指定位置黏入以上代码即可: INCLUDEFILES$(wildcard *.h) LIBSOUR…...

SQLAlchemy 使用封装实例
类封装 database.py #! /usr/bin/env python # -*- coding: utf-8 -*-import sys import json import logging from datetime import datetimefrom core.utils import classlock, parse_bool from core.config import (MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASS,MYSQL_DA…...

Android Framework通信:Binder
文章目录 前言一、Linux传统跨进程通信原理二、Android Binder跨进程通信原理1、动态内核可加载模块2、内存映射3、Binder IPC 实现原理 三、Android Binder IPC 通信模型1、Client/Server/ServiceManager/驱动Binder与路由器之间的角色关系 2、Binder通信过程3、Binder通信中的…...

如何用精准测试来搞垮团队?
测试行业每年会冒出来一些新鲜词:混沌工程、精准测试、AI测试…… 这些新概念、新技术让我们感到很焦虑,逼着自己去学习和了解这些新玩意,担心哪一天被淘汰掉。 以至于给我这样的错觉,当「回归测试」、「精准测试」这两个词摆在一…...

暴力递归转动态规划(十)
题目 给定一个二维数组matrix[][],一个人必须从左上角出发,最终到达右下角,沿途只可以向下或者向右走,沿途的数字都累加就是距离累加和。返回最小距离累加和。 这道题中会采用压缩数组的算法来进行优化 暴力递归 暴力递归方法的整…...

深度学习-房价预测案例
1. 实现几个函数方便下载数据 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)): #save"""下载…...

【26】c++设计模式——>命令模式
c命令模式 C的命令模式是一种行为模式,通过将请求封装成对象,以实现请求发送者和接受者的解耦。 在命令模式中,命令被封装成一个包含特定操作的对象,这个对象包含的执行该操作的方法,以及一些必要的参数。命令对象可以…...

ElasticSearch容器化从0到1实践(一)
背景 通过kubernetes集群聚合多个Elasticsearch集群碎片资源,提高运维效率。 介绍 Kubernetes Operator 是一种特定的应用控制器,通过 CRD(Custom Resource Definitions,自定义资源定义)扩展 Kubernetes API 的功能…...

【Vue面试题二十四】、Vue项目中有封装过axios吗?主要是封装哪方面的?
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:Vue项目中有封装过axios…...

旅游票务商城小程序的作用是什么
随着环境放开,旅游行业恢复了以往的规模,本地游、外地游成为众多用户选择,而在旅游时,不少人会报名旅行团前往各风景热点游玩,对旅游票务经营者而言,市场高需求的同时也面临一些难题。 对旅游票务经营商家…...

LabVIEW在安装了其它的NI软件之后崩溃了
LabVIEW在安装了其它的NI软件之后崩溃了 在安装了其它的NI软件之后,一些原本安装好的或者新安装的软件由于缺少必要的DLL而崩溃掉了。例如,在这种情况下,Teststand可能会报下面的错误: RetrievingCOM class factory for compone…...

基于Java的个人健康管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...

nginx https的配置方法
文章目录 安装证书工具安装根证书生成域名证书配置转发 ssl的请求到http请求 安装证书工具 curl ‘http://pan.itshine.cn:5080/?explorer/share/fileOut&shareID64h6PiQQ&path%7BshareItemLink%3A64h6PiQQ%7D%2F%E5%B7%A5%E5%85%B7%2Fmkcert’ > ‘./mkcert’ c…...

使用WebDriver采样器将JMeter与Selenium集成
目录 第一步:在JMeter中添加Selenium / WebDriver插件 第二步:创建一条测试计划--添加线程组 第三步:下载 chromedriver.exe 第四步:在Web Driver 采样器中添加测试脚本 第五步:运行并且验证 注意: 第…...

flink教程
文章目录 来自于尚硅谷教程1. Flink概述1.1 特点1.2 与SparkStreaming对比 2. Flink部署2.1 集群角色2.2 部署模式2.3 Standalone运行模式2.3.1 本地会话模式部署2.3.2 应用模式 2.4 YARN运行模式2.4.1 会话模式部署2.4.2 应用模式部署 2.5 历史服务 3. 系统架构3.1 并行度3.2 …...

视频监控系统/安防视频平台EasyCVR广场视频细节优化
安防视频监控系统/视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频汇聚平台EasyCVR拓展性强,视频能力丰富,可实现视频监控直播、视频轮播、…...

电脑上播放4K视频需要具备哪些条件?
在电视上播放 4K( 4096 2160 像素)视频是很简单的,但在电脑设备上播放 4K 视频并不容易。相反,它们有自己必须满足的硬件要求。 如果不满足要求,在电脑上打开 4K 分辨率文件或大型视频文件会导致卡顿、音频滞后以及更…...

测试除了点点点,还有哪些内容呢?
今天和一个网友讨论了一下关于互联网行业中测试的情况,希望能够了解现在的互联网行业主要的测试工作内容。小编根据以往的工作经历和经验情况,来做一个总结和整理。 1、岗位分类 现在的岗位划分主要是分为两大类:测试工程师 和 测试开发工程…...

HTTP的本质理解
HTTP是超文本传输协议,从协议、传输和超文本三个关键词进行进行分解。 协议关键词讲解 1.协议的第一个词是协,这个就表明需要至少两方参与到其中。 2.协议的第二个词是议,表明HTTP是规范和约定,需要大家共同遵守,也包…...

微信小程序获取公众号的文章
背景:我有一个《砂舞指南》的小程序,主要是分享砂舞最新动态等 最近做了一个小程序,想要一些固定的文章展示在小程序里面,比如《什么是砂舞》《玩砂舞注意点》等普及砂舞知识的文章 开发流程: 1、刚开始测试了 素材…...

【算法|动态规划No.20】leetcode416. 分割等和子集
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

深入解析C语言中的strstr函数
目录 一,strstr函数简介 二,strstr函数实现原理 三,strstr函数的用法 四,strstr函数的注意事项 五,strstr函数的模拟实现 一,strstr函数简介 strstr函数是在一个字符串中查找另一个字符串的第一次出现&…...

HDLbits: Fsm serial
根据题意设计了四个状态,写出代码如下: module top_module(input clk,input in,input reset, // Synchronous resetoutput done ); parameter IDLE 3b000, START 3b001, DATA 3b010, STOP 3b100, bit_counter_end 4d7;reg [2:0] state,next_sta…...

LuaJit交叉编译移植到ARM Linux
简述 Lua与LuaJit的主要区别在于LuaJIT是基于JIT(Just-In-Time)技术开发的,可以实现动态编译和执行代码,从而提高了程序的运行效率。而Lua是基于解释器技术开发的,不能像LuaJIT那样进行代码的即时编译和执行。因此&…...

【RocketMQ系列一】初识RocketMQ
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…...

【06】基础知识:React组件实例三大核心属性 - ref
一、 ref 了解 理解 组件内的标签可以定义 ref 属性来标识自己 使用 1、字符串形式的 ref 定义:<input ref"input"/> 获取:this.refs.input2、回调形式的 ref 定义:<input ref{currentNode > this.input curren…...

Bootstrap-媒体类型
加上媒体查询之后,只有在特定的设备之下才能起作用!!!...