云计算第四阶段----CLOUD 01-03

news2024/9/17 7:33:36

CLOUD Day01

一、虚拟化平台搭建

虚拟化技术产品介绍

#黄线标注的,都是比较主流且常用的虚拟化平台。

  虚拟化与云计算的关系

虚拟化是一种技术,它允许在单个物理服务器上创建和运行多个虚拟机(VMs),每个虚拟机都有其独立的操作系统和应用程序。这种技术可以提高资源利用率、简化管理和提高安全性,是云计算实现的基础之一

云计算则是一种服务模式,它通过互联网提供计算资源和服务。用户可以根据需要获取这些资源,而无需直接管理底层的硬件。

虚拟化平台搭建

原理:通过在虚拟机中,构建虚拟网桥VBR 与外部网络进行网络通信连接。

                                                              环境准备
主机名称IP地址配置
ecs192.168.88.1252 CPU, 4G mem

# ##################虚拟机 2 cpu,4G运行内存#####################

内核模块管理命令

安装虚拟化平台

验证指令集
[root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo
vmx
vmx
安装虚拟化服务
[root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
[root@ecs ~]# systemctl enable --now libvirtd
[root@ecs ~]# lsmod |grep kvm
kvm_intel             174841  6 
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm
[root@ecs ~]# virsh version
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
Running hypervisor: QEMU 6.2.0
创建虚拟网桥
# 官网手册: https://libvirt.org/docs.html
[root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<network>
  <name>vbr</name>
  <forward mode='nat'/>
  <bridge name='vbr' stp='on' delay='0'/>
  <ip address='192.168.100.254' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.200'/>
    </dhcp>
  </ip>
</network>
# 创建网桥
[root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
# 设置开机自启动
[root@ecs ~]# virsh net-autostart vbr
Network vbr marked as autostarted
# 启动网桥
[root@ecs ~]# virsh net-start vbr
Network vbr started
# 验证状态
[root@ecs ~]# virsh net-list --all
 Name   State    Autostart   Persistent
-----------------------------------------
 vbr    active   yes         yes
 
[root@ecs ~]# ifconfig vbr # 验证

网桥管理命令

命令命令描述
virsh net-list [--all]列出虚拟网络
virsh net-start启动虚拟网络设备
virsh net-destroy停止虚拟网络设备
virsh net-define根据 xml 文件创建虚拟网络
virsh net-undefine删除一个虚拟网络设备
virsh net-edit修改虚拟网络设备的配置
virsh net-autostart设置开机自启动

二、云主机创建

创建原理:(以VMvare为例)

#创建虚拟机需要配置,两个目录的文件设置。

##########写实复制###############

#将用户的读写操作分离,读操作直接访问原始盘,写操作通过前端盘拷贝原始盘数据执行。

特点:

克隆磁盘

  • 上传真机中的目录下 cirros.qcow2vmbase.xml 到虚拟机中
    [root@localhost ]# rsync -av public/{cirros.qcow2,vmbase.xml} 192.168.88.125:/root/
  • #linux系统中编写好的两个文件,传到虚拟机中。没有的话可以看看操作。
[root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/
[root@ecs ~]# cd /var/lib/libvirt/images/
[root@ecs ~]# qemu-img create -F qcow2 -f qcow2 -b cirros.qcow2 vmhost.img 20G
[root@ecs ~]# qemu-img info vmhost.img #查看信息

虚拟机配置文件

[root@ecs ~]# vim vmbase.xml                
02: <name>vmhost</name>  # 必改配置               
03: <memory unit="KB">1048576</memory>
04: <currentMemory unit="KB">1048576</currentMemory>
05: <vcpu placement="static">2</vcpu>
25: <source file="/var/lib/libvirt/images/vmhost.img" />  # 必改配置
29: <source bridge="vbr" />

创建虚拟机

[root@ecs ~]# virsh define vmbase.xml
[root@ecs ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     vmhost                         shut off
[root@ecs ~]# virsh start vmhost
Domain vmhost started
[root@ecs ~]# virsh console vmhost # 两次回车
Connected to domain vmhost
Escape character is ^]

login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login: 

############下面几个虚拟机管理命令,部署可以多练练############

管理命令(1)

命令命令描述
virsh list [--all]列出虚拟机
virsh start/shutdown启动/关闭虚拟机
virsh destroy强制停止虚拟机
virsh define/undefine创建/删除虚拟机
virsh console连接虚拟机的 console

管理命令(2)

命令命令描述
virsh edit修改虚拟机的配置
virsh autostart设置虚拟机自启动
virsh dominfo查看虚拟机摘要信息
virsh domiflist查看虚拟机网卡信息
virsh domblklist查看虚拟机硬盘信息

三、云计算

特点
可伸缩性、运营效率、访问性和安全性

云计算的虚拟化配置,可以增强服务器的安全性,和隔离大部分的物理硬件安全风险。

#虚拟化好比在森林里面穿了吉利服,云平台的使用,就是再此基础上,居住到隐身的房屋一样。

#云计算行业面试会问到

三大服务模式

IaaS: 基础设施服务,Infrastructure-as-a-service
PaaS: 平台服务,Platform-as-a-service
SaaS: 软件服务,Software-as-a-service

三大使用场景

公有云:是第三方的云供应商,通过互联网为广大用户提供的一种按需使用的服务器资源,是一种云基础设施。
私有云:是一个企业或组织的专用云环境。一般在企业内部使用,不对外提供服务,因此它也被视为一种企业云。
混合云:是在私有云的基础上,组合其他公有云资源,从而允许在不同云环境之间共享应用和数据的使用方式。


后续课程,我们课程中练习合作的是华为云,所以后续云平台的使用,云主机等等的相关配置都是从华为云出发。(PS: (*^▽^*)  没用过云平台的小伙伴可以了解流程,了解过后类似的云平台产品,你可以自己取货比三家。

官网下载地址如下:

如果公司有资金支持和搭建服务器需求,或者个人工作需要配置购买相关服务的话,觉得华为云不错。可以从下方网址注册账号后,灵活购买定制服务器需求。


CLOUD Day2

一、华为云服务

注册与使用账号

#其他 腾讯、百度、阿里等平台也是类似从操作。多看看就能懂。

#你个人或者为公司配置的云服务器相关服务项目,都在控制台可以看到。

服务器区域选择

#可以选择离自己工作学习环境比较近的区域。有的时候,服务器

需要下载外国软件,就可以选香港服务器

 网络配置

安全组配置

#配置网络防火墙规则,放黑客和默认用户肆意登录

#自己实验练习。可以设成开放全部端口

二、华为云管理

构建云主机

镜像配置

#后续就不用,多次购置云主机下基本软件了,只需要把镜像机配置好,以后用镜像机的配置即可。

测试配置情况

#包年、包月 方式  个人不换算,土豪随意。 

#这里为什么要买弹性公网呢?因为个人上网安全隐私需求考虑,绑定公网IP后才可以,在互联网与个人电脑之间自由玩耍

讲完了如何配置和购买云主机相关知识后,进入具体实操环节。

三、华为云案例

首先规划好架构图。

#图中的跳板机,就好比传送门,因为它绑定了弹性公网,既可以作为互联网与本地私有网络的连接入口。又可以在跳板机中远程连接其他云主机。

公有云配置

区域: 同一个区域中的云主机是可以互相连通的,不通区域云主机是不能使用内部网络互相通信的
选择离自己比较近的区域,可以减少网络延时卡顿
华为云yum仓库:https://repo.huaweicloud.com/rockylinux/

#这里使用的是华为云主机自带的YUM仓库

跳板机配置

ansible 管理主机

#用于自动化脚本配置,或作为软件存放仓库

[root@ecs-proxy ~]# dnf install -y ansible-core glibc-langpack-zh
[root@ecs-proxy ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
... ...
[root@ecs-proxy ~]# chmod 0400 /root/.ssh/id_rsa
[root@ecs-proxy ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.125
[root@ecs-proxy ~]# ansible --version

优化系统配置

[root@ecs-proxy ~]# systemctl stop atd kdump nis-domainname
[root@ecs-proxy ~]# dnf remove -y postfix at audit kexec-tools firewalld-* *-firmware unbound-libs 
[root@ecs-proxy ~]# dnf install -y rsync tree bash-completion lrzsz tar iptables patch ipset time
[root@ecs-proxy ~]# echo 'ListenAddress 0.0.0.0' >>/etc/ssh/sshd_config
[root@ecs-proxy ~]# sed -ri 's,^(OPTIONS).*,\1="-4u chrony",' /etc/sysconfig/chronyd
[root@ecs-proxy ~]# sed 's,^manage_etc_hosts:.*,# &,' -i /etc/cloud/cloud.cfg
[root@ecs-proxy ~]# vim /etc/hosts
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
[root@ecs-proxy ~]# reboot

#做了免密、时间同步方面的相关配置,并下载了课程中会使用到的软件

yum仓库原理


代理 Yum 仓库

[root@ecs-proxy ~]# dnf install -y nginx
[root@ecs-proxy ~]# vim /etc/nginx/default.d/dnf_proxy.conf
resolver 100.125.1.250 100.125.129.250 valid=5 ipv6=off;
location ~ ^/rockylinux/(.*)$ {
    proxy_pass https://repo.huaweicloud.com/rockylinux/$1;
}
[root@ecs-proxy ~]# systemctl enable --now nginx

私有 Yum 仓库

[root@ecs-proxy ~]# dnf install -y createrepo
[root@ecs-proxy ~]# mkdir -p /var/localrepo
[root@ecs-proxy ~]# createrepo --update /var/localrepo
[root@ecs-proxy ~]# ln -s /var/localrepo /usr/share/nginx/html/

 

模板配置

#此处开始配置镜像机器

配置 Yum 客户端

[root@ecs-host ~]# rm -f /etc/yum.repos.d/{epel,Rocky-[!ABE]}*
[root@ecs-host ~]# sed -ri 's,https://repo.huaweicloud.com,http://192.168.1.252,' /etc/yum.repos.d/*.repo
[root@ecs-host ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=Rocky Linux $releasever - Localrepo
baseurl=http://192.168.1.252/localrepo
enabled=1
gpgcheck=0

[root@ecs-host ~]# dnf makecache
Rocky Linux 8 - AppStream                        187 kB/s | 4.8 kB     00:00    
Rocky Linux 8 - BaseOS                           172 kB/s | 4.3 kB     00:00    
Rocky Linux 8 - Extras                           105 kB/s | 3.5 kB     00:00    
Rocky Linux 8 - Localrepo                        2.9 MB/s | 3.0 kB     00:00    
Metadata cache created.

优化系统配置

[root@ecs-host ~]# systemctl stop atd kdump nis-domainname
[root@ecs-host ~]# dnf remove -y postfix at audit kexec-tools firewalld-* *-firmware unbound-libs 
[root@ecs-host ~]# dnf install -y rsync tree bash-completion lrzsz tar iptables patch ipset time
[root@ecs-host ~]# echo 'ListenAddress 0.0.0.0' >>/etc/ssh/sshd_config
[root@ecs-host ~]# sed -ri 's,^(OPTIONS).*,\1="-4u chrony",' /etc/sysconfig/chronyd
[root@ecs-host ~]# sed 's,^manage_etc_hosts:.*,# &,' -i /etc/cloud/cloud.cfg
[root@ecs-host ~]# vim /etc/hosts
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
[root@ecs-host ~]# dnf clean all
[root@ecs-host ~]# poweroff

                                  关机以后把主机系统盘制作为模板


CLOUD DAY3

一、网站部署

架构图设计:

环境准备:

名称IP地址配置
nfs192.168.1.101CPU,1G内存
web-0001192.168.1.112CPU,4G内存
web-0002192.168.1.122CPU,4G内存
web-0003192.168.1.132CPU,4G内存

部署NFS服务

#这里我用的是,老师准备的软件资源,小伙伴们知道原理即可

# 拷贝网站页面到 NFS 云主机
[root@ecs-proxy s4]# rsync -av public/website.tar.gz 192.168.1.10:/root/
#----------------------------------------------------------------------#
# 创建共享目录,并部署网站页面
[root@nfs ~]# mkdir -p /var/webroot
[root@nfs ~]# tar -zxf website.tar.gz -C /var/webroot/

# 部署 NFS 服务
[root@nfs ~]# dnf install -y nfs-utils
[root@nfs ~]# vim /etc/exports
/var/webroot    192.168.1.0/24(rw,no_root_squash)

[root@nfs ~]# systemctl enable --now nfs-server.service

 部署web服务

#这里用到的是云计算第二阶段,开始学习的ansible 剧本知识,记不清楚的可以,倒回去复习复习

[root@ecs-proxy ~]# mkdir website
[root@ecs-proxy ~]# cd website
[root@ecs-proxy website]# vim ansible.cfg
[defaults]
inventory         = hostlist
host_key_checking = False
[root@ecs-proxy website]# vim hostlist
[web]
192.168.1.[11:13]
[root@ecs-proxy website]# vim web_install.yaml
---
- name: web 集群安装
  hosts: web
  tasks:
  - name: 安装 apache 服务 
    dnf:
      name: httpd,php,nfs-utils
      state: latest
      update_cache: yes
  - name: 配置 httpd 服务 
    service:
      name: httpd
      state: started
      enabled: yes
  - name: 编辑 fstab 文件,添加 NFS 配置
    lineinfile:
      path: /etc/fstab
      regexp: '^192.168.1.10:/.*'
      line: '192.168.1.10:/var/webroot /var/www/html nfs defaults,_netdev,nolock 1 1'
      create: yes
  - name: 挂载 NFS
    shell:
      cmd: mount /var/www/html

# 执行 playbook 完成安装
[root@ecs-proxy website]# ansible-playbook web_install.yaml

二、负载均衡

#负载均衡负责的集群,而弹性公网只适合单一主机的访问

原理:

负载均衡配置

 算法选择

#多个选轮训,单个选最少

#通过浏览器访问这个公网地址的info.php

三、Elasticsearch安装部署

架构图解

主机IP地址配置
es-0001192.168.1.21最低配置2核4G
es-0002192.168.1.22最低配置2核4G
es-0003192.168.1.23最低配置2核4G
es-0004192.168.1.24最低配置2核4G
es-0005192.168.1.25最低配置2核4G

添加软件包

#在跳板机操作哦

# 添加 ELK 软件包到自定义 Yum 仓库
[root@ecs-proxy s4]# rsync -av elk/ /var/localrepo/elk/
[root@ecs-proxy s4]# createrepo --update /var/localrepo

部署 es-0001

 

[root@es-0001 ~]# vim /etc/hosts
192.168.1.21    es-0001
192.168.1.22    es-0002
192.168.1.23    es-0003
192.168.1.24    es-0004
192.168.1.25    es-0005
[root@es-0001 ~]# dnf install -y elasticsearch
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
17:  cluster.name: my-es
23:  node.name: es-0001
56:  network.host: 0.0.0.0
70:  discovery.seed_hosts: ["es-0001", "es-0002", "es-0003"]
74:  cluster.initial_master_nodes: ["es-0001", "es-0002", "es-0003"]
[root@es-0001 ~]# systemctl enable --now elasticsearch
# 服务启动成功
[root@es-0001 ~]# curl http://127.0.0.1:9200
{
  "name" : "es-0001",
  "cluster_name" : "my-es",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.17.8",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "120eabe1c8a0cb2ae87cffc109a5b65d213e9df1",
    "build_date" : "2022-12-02T17:33:09.727072865Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

部署 es-0002

# 验证集群状态失败
[root@es-0002 ~]# curl http://192.168.1.21:9200/_cat/nodes?pretty
{
  "error" : {
    "root_cause" : [
      {
        "type" : "master_not_discovered_exception",
        "reason" : null
      }
    ],
    "type" : "master_not_discovered_exception",
    "reason" : null
  },
  "status" : 503
}
# 部署服务
[root@es-0002 ~]# vim /etc/hosts
192.168.1.21    es-0001
192.168.1.22    es-0002
192.168.1.23    es-0003
192.168.1.24    es-0004
192.168.1.25    es-0005
[root@es-0002 ~]# dnf install -y elasticsearch
[root@es-0002 ~]# vim /etc/elasticsearch/elasticsearch.yml
17:  cluster.name: my-es
23:  node.name: es-0002
56:  network.host: 0.0.0.0
70:  discovery.seed_hosts: ["es-0001", "es-0002", "es-0003"]
74:  cluster.initial_master_nodes: ["es-0001", "es-0002", "es-0003"]
[root@es-0002 ~]# systemctl enable --now elasticsearch
# 验证集群状态
[root@es-0002 ~]# curl http://es-0001:9200/_cat/nodes?pretty
192.168.1.21 16 89  2 0.15 0.06 0.04 cdfhilmrstw * es-0001
192.168.1.22  6 88 61 1.00 0.23 0.08 cdfhilmrstw - es-0002
集群扩容
  • 在所有 es 主机安装 Elasticsearch
[root@ecs-proxy ~]# mkdir es
[root@ecs-proxy ~]# cd es
[root@ecs-proxy es]# vim ansible.cfg 
[defaults]
inventory         = hostlist
host_key_checking = False
[root@ecs-proxy es]# vim hostlist
[es]
192.168.1.[21:25]
[root@ecs-proxy es]# rsync -av 192.168.1.21:/etc/elasticsearch/elasticsearch.yml elasticsearch.j2
[root@ecs-proxy es]# vim elasticsearch.j2
23:  node.name: {{ ansible_hostname }}
[root@ecs-proxy es]# vim es_install.yaml 
---
- name: Elasticsearch 集群安装
  hosts: es
  tasks:
  - name: 设置 /etc/hosts
    copy:
      dest: /etc/hosts
      owner: root
      group: root
      mode: '0644'
      content: |
        ::1     localhost localhost.localdomain localhost6 localhost6.localdomain6
        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        {% for i in groups.es %}
        {{ hostvars[i].ansible_eth0.ipv4.address }} {{ hostvars[i].ansible_hostname }}
        {% endfor %}
  - name: 安装 ES 服务
    dnf:
      name: elasticsearch
      state: latest
      update_cache: yes
  - name: 拷贝配置文件
    template:
      src: elasticsearch.j2
      dest: /etc/elasticsearch/elasticsearch.yml
      owner: root
      group: elasticsearch
      mode: '0660'
  - name: 配置 ES 服务 
    service:
      name: elasticsearch
      state: started
      enabled: yes

[root@ecs-proxy es]# ansible-playbook es_install.yaml
[root@ecs-proxy es]# curl http://192.168.1.21:9200/_cat/nodes?pretty
192.168.1.21 32 88 0 0.04 0.01 0.00 cdfhilmrstw * es-0001
192.168.1.22 16 87 0 0.13 0.04 0.01 cdfhilmrstw - es-0002
192.168.1.23  6 86 1 0.64 0.21 0.07 cdfhilmrstw - es-0003
192.168.1.24 18 86 0 0.44 0.13 0.05 cdfhilmrstw - es-0004
192.168.1.25  6 86 1 0.67 0.21 0.07 cdfhilmrstw - es-0005

插件管理

Head插件图例

 

 部署插件页面

#传输的软件包是课堂老师准备的,需要练习的话,可以去官网下载正版。

# 拷贝插件 public/head.tar.gz 到 es-0001 主机
[root@ecs-proxy s4]# rsync -av public/head.tar.gz 192.168.1.21:./
#-------------------------------------------------
# 在 es-0001 上安装 web 服务,并部署插件
[root@es-0001 ~]# dnf install -y nginx
[root@es-0001 ~]# systemctl enable --now nginx
[root@es-0001 ~]# tar zxf head.tar.gz -C /usr/share/nginx/html/
  • 通过 ELB 的 8080 端口,发布服务到互联网

 认证和代理

[root@es-0001 ~]# vim /etc/nginx/default.d/esproxy.conf 
location ~* ^/es/(.*)$ {
    proxy_pass http://127.0.0.1:9200/$1;
    auth_basic "Elasticsearch admin";
    auth_basic_user_file /etc/nginx/auth-user; 
}
[root@es-0001 ~]# dnf install -y httpd-tools
[root@es-0001 ~]# htpasswd -cm /etc/nginx/auth-user admin
New password: 
Re-type new password: 
Adding password for user admin
[root@es-0001 ~]# systemctl reload nginx

 

API原语管理

集群状态查询

# 查询支持的关键字
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/_cat/
# 查具体的信息
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/_cat/master
# 显示详细信息 ?v
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/_cat/master?v
# 显示帮助信息 ?help
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/_cat/master?help
# 显示易读格式 ?pretty
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/_cat/master?pretty

创建索引

  • 指定索引的名称,指定分片数量,指定副本数量
# 创建 tedu 索引
[root@es-0001 ~]# curl 'http://127.0.0.1:9200/tedu?pretty' \
    -X PUT -H 'Content-Type: application/json' -d '{
      "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 1
      }
    }'
增加数据
[root@es-0001 ~]# curl -XPUT -H "Content-Type: application/json" \
    http://127.0.0.1:9200/tedu/teacher/1?pretty -d '{
        "职业": "诗人","名字": "李白","称号": "诗仙","年代": "唐"
    }' 
查询数据
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/tedu/teacher/_search?pretty
[root@es-0001 ~]# curl -XGET http://127.0.0.1:9200/tedu/teacher/1?pretty
修改数据
[root@es-0001 ~]# curl -XPOST -H "Content-Type: application/json" \
    http://127.0.0.1:9200/tedu/teacher/1/_update -d '{ 
      "doc": {"年代":"公元701"}
    }'
删除数据
# 删除一条
[root@es-0001 ~]# curl -XDELETE http://127.0.0.1:9200/tedu/teacher/1
# 删除索引
[root@es-0001 ~]# curl -XDELETE http://127.0.0.1:9200/tedu

以上就是云计算 CLOUD模块的前三天内容了。

需要小伙伴们了解,云平台服务器相关服务的购置与使用 。镜像机的制作,ELK 中Elasearch软件的配置(更多内容AI),API 网络查询语句的使用(了解大体用法)。

       或许那一天你个人做游戏,或者为公司购置云平台服务器时会用到以上知识,平台不重要,重要的是你知道如何更划算的使用与搭配。根据剧本和云平台的搭配,合理配置云服务器相关服务,提升资源利用效率。

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

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

相关文章

二叉树的相关选择题和基本方法(持续更新)

二叉树相关选择题和基本方法 选择题1选择题2选择题3选择题4选择题5选择题6选择题7选择题8选择题9选择题10选择题11选择题12选择题13选择题14选择题15选择题16选择题17选择题18选择题19选择题20选择题21选择题22实现二叉树的基本操作查询二叉树当中节点的个数遍历思想子问题思想…

[数据集][图像分类]熊分类数据集309张5类别黑熊泰迪北极熊等

数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;309 分类类别数&#xff1a;5 类别名称:["black","grizzly","panda","polar","teddy"] 每个类别图…

大数据之Flink(五)

15、Flink SQL 15.1、sql-client准备 启用Hadoop集群(在Hadoop100上) start-all.sh启用yarn-session模式 /export/soft/flink-1.13.0/bin/yarn-session.sh -d启动sql-client bin/sql-client.sh embedded -s yarn-sessionsql文件初始化 可以初始化模式、环境&#xff08;流/批…

BUUCTF(34)特殊的 BASE64

使用pycharm时&#xff0c;如果想把代码撤销到之前的状态可以用 Ctrlz 如果不小心撤销多了&#xff0c;可以用 CtrlShiftZ 还原&#xff0c; 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串&#xff0c;想到base64的变表 这里用的c的标准程序库中的string&#xff0…

JS_循环结构

目录标题 while结构for循环foreach循环 while结构 几乎和JAVA一致 代码 <script> /* 打印99 乘法表 */ var i 1; while(i < 9){ var j 1; while(j < i){ document.write(j"*"i""i*j" "); j; } document.write("<hr/…

《机器学习》数据预处理 删除、替换、填充 案例解析及实现

目录 一、了解数据清洗 1、什么是数据清洗 2、数据清洗步骤 1&#xff09;缺失值处理 2&#xff09;异常值处理 3&#xff09;重复值处理 4&#xff09;格式修正 5&#xff09;数据一致性检查 6&#xff09;数据类型转换 二、数据清洗用法 1、有如下文件内容 2、完…

前向渲染路径

1、前向渲染路径处理光照的方式 前向渲染路径中会将光源分为以下3种处理方式&#xff1a; 逐像素处理&#xff08;需要高等质量处理的光&#xff09;逐顶点处理&#xff08;需要中等质量处理的光&#xff09;球谐函数&#xff08;SH&#xff09;处理&#xff08;需要低等质量…

线程的四种操作

所属专栏&#xff1a;Java学习 1. 线程的开启 start和run的区别&#xff1a; run&#xff1a;描述了线程要执行的任务&#xff0c;也可以称为线程的入口 start&#xff1a;调用系统函数&#xff0c;真正的在系统内核中创建线程&#xff08;创建PCB&#xff0c;加入到链…

C++17: 用折叠表达式实现一个IsAllTrue函数

前言 让我们实现一个 IsAllTrue 函数&#xff0c;支持变长参数&#xff0c;可传入多个表达式&#xff0c;必须全部计算为true&#xff0c;该函数才返回true。 本文记录了逐步实现与优化该函数的思维链&#xff0c;用到了以下现代C新特性知识&#xff0c;适合对C进阶知识有一定…

2025最新:如何打造公司财务管理系统?Java SpringBoot实现,一步到位管理企业财务!

✍✍计算机毕业编程指导师** ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java…

STM32F407VET6开发板RT-Thread的移植适配

前言 最近购买了一块 STM32F407VET6开发板【魔女】&#xff0c;http://www.stm32er.com/ 通过原理图了解到&#xff0c;开发板板载 CMSIS-DAP 调试下载口&#xff0c;例程部分大部分以裸机程序为主 目标&#xff1a;打算移植适配到 RT-Thread 适配 RT-Thread RT-Thread 支持…

基于准静态自适应环型缓存器(QSARC)的taskBus万兆吞吐实现

文章目录 概要整体架构流程技术名词解释技术细节1. 数据结构2. 自适应计算队列大小3. 生产者拼接缓存4. 高效地通知消费者 小结1. 性能表现情况2. 主要改进3. 源码和发行版 概要 准静态自适应环形缓存器&#xff08;Quasi-Static Adaptive Ring Cache&#xff09;是taskBus用于…

【Python报错已解决】 No Python at ‘C:\Users...\Python Python39\python.exe’

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;检查Python安装路径2.2 …

苍穹外卖随记(一)

黑马苍穹外卖逻辑和细节的问题和解决 1.后端查询到员工的日期信息&#xff0c;将信息进行json化传给前端时发生&#xff1a;前端收到的是不标准的日期json串。 解决&#xff1a;1.注解进行json格式化&#xff08;JsonFormat&#xff09;2. 在spring MVC中&#xff0c;通过消息…

如何验证VMWare WorkStation的安装?

如何验证VMWare WorkStation的安装&#xff1f; 右击"网络"&#xff0c;点击 打开"网络和Internet设置"&#xff0c;点击更改适配器选项&#xff0c;如果出现VMNet1和VMNet8&#xff0c;则说明安装成功。

内网穿透(cpolar实现)

目录 一、介绍 二、内网穿透工具cpolar实现 1.下载与安装 2.cpolar指定authtoken 3.获取临时域名 4.验证临时域名有效性 一、介绍 内网穿透&#xff0c;即 NAT 穿透&#xff08;Network Address Translation Traversal&#xff09;&#xff0c;是一种网络技术&#xff0…

Python爬虫使用实例-wallpaper

1/ 排雷避坑 &#x1f95d; 中文乱码问题 print(requests.get(urlurl,headersheaders).text)出现中文乱码 原因分析&#xff1a; <meta charset"gbk" />解决方法&#xff1a; 法一&#xff1a; response requests.get(urlurl,headersheaders) response.en…

java基础-IO(4)管道流 PipedOutputStream、PipedInputStream、PipedReader、PipedWriter

管道 提到管道&#xff0c;第一印象就是水管或者地下管道&#xff0c;一节接着一节&#xff0c;形如下图。 管道流 "流"从上一个管道 ——-> 下一个管道。又细分为字节流和字符流。 字节流&#xff08;PipedOutputStream、PipedInputStream&#xff09; 如果…

SSM框架介绍

SSM通常指的是三个开源框架的组合&#xff0c;即Spring、SpringMVC&#xff08;Spring Web MVC&#xff09;和MyBatis&#xff0c;这三个框架经常一起使用来开发Java企业级应用&#xff0c;特别是在Web应用开发中非常流行。 SSM框架介绍 Spring 简介&#xff1a;Spring是一个…

谷粒商城のNginx

文章目录 前言一、Nginx1、安装Nginx2、相关配置2.1、配置host2.2、配置Nginx2.3、配置网关 前言 本篇重点介绍项目中的Nginx配置。 一、Nginx 1、安装Nginx 首先需要在本地虚拟机执行&#xff1a; mkdir -p /mydata/nginx/html /mydata/nginx/logs /mydata/nginx/conf在项目…