python进行网站开发/长沙网站包年优化
参考文献
K8S基础知识与集群搭建
kubeadm搭建单master多node的k8s集群—主要参考这个博客,但是有坑,故贴出我自己的过程,坑会少很多
注意:
- 集群配置是:一台master:zabbixagent-k8smaster,两台node:k8snode1和k8snode2
- 当没有明说master机器做什么或者node机器做什么时,所有操作步骤默认是三台机器都要进行配置
- 操作系统:centos 7,且master的cpu要配置2核及以上,否则跑不动k8s!!!
1.环境准备
a.修改机器的ip地址并设置为静态ip
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b841150d-bab6-4e52-802d-83c990f6b00f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.50
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
DNS1=192.168.0.2
上述代码中主要设置:
BOOTPROTO=static
IPADDR=your ip
NETMASK=your netmask
GATEWAY=your gateway
DNS1=your dns
- 修改后重启生效:systemctl restart network
b.修改主机名
- 修改主机名:hostnamectl set-hostname yournmae && bash
- master IP:192.168.0.51
- Node1 IP:192.168.0.52
- Node2 IP:192.168.0.53
c.关闭selinux和关闭防火墙
- 关闭selinux:
- sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
- 重启以生效:reboot
- 使用getenforce查看selinux的状态
- 关闭防火墙
- systemctl stop firewalld && systemctl disable firewalld
d.修改hosts⽂件
- 目的:让各个节点都能够通过主机名访问到其他节点。修改每个机器的/etc/hosts⽂件
- 每台机器执行以下命令:
echo '192.168.0.51 zabbixagent-k8smaster
192.168.0.52 k8snode1
192.168.0.53 k8snode2' >> /etc/hosts
其中ip地址及对应的主机名改为你自己对应的。
- 查看修改后的hosts文件
e.机器上配置 yum 源
- 删除原有的yum源:rm -rf /etc/yum.repos.d/*.repo
- 下载centos7的reposity(因为我的操作系统是centos):wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo (如果没有wget,去 http://mirrors.aliyun.com/repo/ 下载CentOS-Base.repo,再上传CentOS-Base.repo文件到/etc/yum.repos.d/目录下)
- 清楚缓存:yum clean all && yum makecache
- 安装lrzsz、scp、vim、wget、net-tools:yum install -y lrzsz scp vim wget net-tools yum-utils
f.配置国内 docker 的 repo、epel 源
- 下载repo:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 下载epel源:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- 查看文件:ls /etc/yum.repos.d/
g.配置主机间免密登录-命令按先后步骤执行(注意看本节每个字)
- 目的:每台机器设置免密登录,因为k8s集群中的各个节点之间需要通过 ssh 进行通信
- 生成密钥:ssh-keygen(一路回车)–注意:下方图片横线处,如果没有生成这个或者接下来的步骤执行不成功,再次执行“ssh-keygen”命令
- 将本地生成的密钥文件和私钥文件拷贝到zabbixagent-k8smaster节点(此处是你自己的节点名字):ssh-copy-id zabbixagent-k8smaster --注意:下方图片横线处,需要输入zabbixagent-k8smaster的密码。
- 将本地生成的密钥文件和私钥文件拷贝到k8snode1节点(此处是你自己的的节点):ssh-copy-id k8snode1 --注意:下方图片横线处,需要输入k8snode1的密码。
- 将本地生成的密钥文件和私钥文件拷贝到k8snode2节点(此处是你自己的节点):ssh-copy-id k8snode2 --注意:下方图片横线处,需要输入k8snode2的密码。
- 上面是在zabbixagent-k8smaster执行了“ssh-keygen、ssh-copy-id zabbixagent-k8smaster、ssh-copy-id k8snode1、ssh-copy-id k8snode2”,,这些命令还需要在k8snode1和k8snode2执行一遍
h.关闭 swap 分区
- 目的:swap交换分区,在机器内存不够时会使用,但是swap分区的性能较低,k8s设计时为了提升性能,默认不允许使用交换分区。kubeadm初始化的时候会检查是否开启了swap分区,如果开启了,会报错,所以需要关闭swap分区。如果不想关闭交换分区,可以使用–ignore-preflight-errors=Swap参数忽略检查。
- 在master节点上:vim /etc/fstab,然后注释掉/dev/mapper…
- 在两个节点是上:vim /etc/fstab,需要注释掉/dev/…和uuid
i.修改机器内核参数
- 目的:k8s需要修改机器内核参数,使其支持路由转发和桥接,否则会报错
- 三台机器分别执⾏修改内核参数
- vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
- modprobe br_netfilter
- sysctl -p /etc/sysctl.d/k8s.conf
j.配置安装k8s组件的yum源
- vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
k.配置时间同步
- 目的:使ntpdate同步时间
- 安装ntpdate:yum install -y ntpdate
- 与ntp服务器同步时间:ntpdate cn.pool.ntp.org
- 将时间同步命令写⼊:crontab -e
0 2 * * * /usr/sbin/ntpdate cn.pool.ntp.org
- 重启crontab服务:systemctl restart crond
m.开启 ipvs
- ipvs(IP Vertual Server):实现了传输层的负载均衡,是一种高性能、可扩展的负载均衡方案。
- Linux内核的一部分,承担着负载均衡的功能。
- 通过ipvsadm工具来配置ipvs。
- ipvs可基于TCP和UDP的服务请求转发到真实服务器上
- ipvs和iptables的区别:
- ipvs是在传输层工作,iptables是在网络层工作。
- ipvs是基于内容的负载均衡,iptables是基于地址的负载均衡。
- ipvs为大型集群提供了高性能的负载均衡,iptables为小型集群提供了负载均衡。
- ipvs支持更多的负载均衡算法,iptables只支持轮询算法。
- ipvs支持服务器健康检查、连接重试等功能,iptables不支持。
- 准备ipvs.modules⽂件:vim /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}; do /sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1 if [ 0 -eq 0 ]; then /sbin/modprobe ${kernel_module} fi
done
- 修改ipvs.modules文件权限并执行
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
n.安装基础软件包
yum install -y device-mapper-persistent-data lvm2 net-tools conntrack-tools wget nfs-utils telnet gcc gcc-c++ make cmake libxml2-devel openssl-devel curl-devel unzip sudo ntp libaio-devel ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet
o.安装 iptables
- iptables是Linux系统上常用的防火墙软件,用于设置、审计和检查IPv4和IPv6数据包过滤规则以及NAT表的工具。
- 安装iptables:yum install -y iptables-services
- 禁⽤iptables:systemctl stop iptables && systemctl disable iptables
- 清空防⽕墙规则:iptables -F
p.安装docker
- 安装docker-ce和containerd:yum install -y docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io
- 启动docker:systemctl enable docker && systemctl start docker
q.配置docker镜像加速器
- 创建配置⽂件:mkdir -p /etc/docker
- 创建daemon.json⽂件:vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://rsbud4vc.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
- 加载配置、重启docker:systemctl daemon-reload && systemctl restart docker
2.kubernetes集群部署
a.安装初始化Kubernetes需要软件包
- kubeadm: 用于初始化集群的指令;kubelet: 运行在集群所有节点上,负责启动 Pod 和容器等;kubectl: 用于与集群通信的命令行工具
- 安装kubeadm、kubelet、kubectl
yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6 --nogpgcheck
- 开机启动kubelet:systemctl enable kubelet
- 下载k8s所需要的镜像,并load到docker
- k8simage-1-20-6.tar.gz下载链接:https://pan.baidu.com/s/1K4n61u8yM3sUciiQoKlMPg 提取码:wjq9
- docker load -i k8simage-1-20-6.tar.gz
b.使⽤kubeadm初始化k8s集群
- 只在主节点(master)上执行此命。 注意:apiserver-advertise-address=your master IP
kubeadm init --kubernetes-version=v1.20.6 \
--apiserver-advertise-address=192.168.0.51 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/16 \
--ignore-preflight-errors=SystemVerification
上面命令行的含义:
--kubernetes-version 指定k8s版本
--apiserver-advertise-address 指定apiserver的地址
--image-repository 指定镜像仓库地址
--pod-network-cidr 指定pod网络地址
--ignore-preflight-errors 忽略检查
c.配置kubectl的配置文件config
- 目的:操作相当于对 kubectl 命令行工具进行初始化,使其能够与 Kubernetes 集群通信
- 只在主节点上执行下方命令
mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 查看集群状态:kubectl get nodes(由于还没有安装网络插件,所以下图状态是NotReady)
- 只在主节点上生成配置文件并修改:kubeadm config print init-defaults > a.yaml
- 修改a.yaml:vim a.yaml(下方代码片中name: zabbixagent-k8smaster这处需要改为自己的master的名称,然后就可以全部复制粘贴,将a.yaml替换)
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 10.104.26.192bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockimagePullPolicy: IfNotPresentname: zabbixagent-k8smastertaints: null
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:local:dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.20.6
networking:dnsDomain: cluster.localpodSubnet: 10.244.0.0/16serviceSubnet: 10.96.0.0/12
scheduler: {}
- 在三台机器上都执行,修改containerd配置⽂件:
- containerd config default > /etc/containerd/config.toml
- vi /etc/containerd/config.toml
# 添加下⾯内容
SystemdCgroup = true
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"
- 三台机器重启运行时:systemctl restart containerd
- 在主节点上,重新初始化主节点:kubeadm init --config a.yaml(如果此步骤报错,可能的情况之一是:a.yaml中两个apiVersion:应该改为kubeadm.k8s.io/v1beta2)
- mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown ( i d − u ) : (id -u): (id−u):(id -g) $HOME/.kube/config
d.扩容k8s集群-添加node节点
- 目的:将另外两台节点加入到集群中
- 两台node机器分别执行:
- systemctl restart containerd
- 然后在主节点执行:kubeadm token create --print-join-command(这一步是获取node节点加入master所需的token等信息。)
- 主节点打印出来的东西,复制到两个node上执行,看下面这张图
- 在master上查看集群信息:kubectl get nodes
解释:
1.ROLES为<none>,说明这个节点时工作节点
2. STATUS为NotReady,说明这个节点还没有安装网络插件
- 主节点上执行。将两个节点的roles设置为workers:
- kubectl label node k8snode1 node-role.kubernetes.io/worker=worker
- kubectl label node k8snode2 node-role.kubernetes.io/worker=worker
3.布置⽹络插件
a.安装⽹络插件
- 去https://github.com/hqs2212586/docker-study/blob/main/calico.yaml下载calico.yaml,然后上传到master节点
- master上执行,使用yaml文件安装calico.yaml:kubectl apply -f calico.yaml
- master执行,查看节点状态:kubectl get nodes
b.测试在k8s创建pod是否可以正常访问网络
- 在两台node节点拉取busybox:1.28镜像:docker pull busybox:1.28
![[image-20231211185738265.png]] - 在主节点创建 pod:kubectl run busybox --image=busybox:1.28 --restart=Never --rm -it busybox – sh(当出现/ #时ping一个网址,能ping通说明网络是通的)
c.测试k8s集群部署tomcat服务
- 在两个node节点 pull tomcat:docker pull tomcat:8.5-jre8-alpine
- 在 master节点创建tomcat.yaml:vim tomcat.yml
apiVersion: v1 #pod属于k8s核心组v1
kind: Pod #创建的是一个Pod资源
metadata: #元数据name: demo-pod #pod名字namespace: default #pod所属的名称空间labels:app: myapp #pod具有的标签env: dev #pod具有的标签
spec:containers: #定义一个容器,容器是对象列表,下面可以有多个name- name: tomcat-pod-java #容器的名字ports:- containerPort: 8080image: tomcat:8.5-jre8-alpine #容器使用的镜像imagePullPolicy: IfNotPresent
- 在 master节点创建pod:kubectl apply -f tomcat.yaml
- 在 master节点创建tomcat-service.yml:vim tomcat-service.yaml
apiVersion: v1
kind: Service
metadata:name: tomcat
spec:type: NodePortports:- port: 8080nodePort: 30080selector:app: myappenv: dev
- 在 master节点创建pod:kubectl apply -f tomcat-service.yaml
- 查看服务状态:kubectl get svc
- 访问三台机器ip加30080,看到Tomcat初始界面
相关文章:

kubeadm搭建单master多node的k8s集群--小白文,图文教程
参考文献 K8S基础知识与集群搭建 kubeadm搭建单master多node的k8s集群—主要参考这个博客,但是有坑,故贴出我自己的过程,坑会少很多 注意: 集群配置是:一台master:zabbixagent-k8smaster,两台…...

CSS层叠样式表一
1,CSS简介 1.1 CSS-网页的美容师 CSS的主要使用场景就是美化网页,布局页面的 CSS也是一种标记语言 CSS主要用于设置HTML页面中的文本内容(字体,大小,对齐方式等)、图片的外形(宽高、边框样式…...

【等保】安徽省等保测评机构名单看这里!
随着互联网技术的飞速发展,网络安全已成为国家安全、社会稳定的重要保障,因此我们严格贯彻落实等保政策。等保测评机构在等保制度执行过程中发挥着重要的作用。现在我们就来看看安徽省等保测评机构有哪些? 【等保】安徽省等保测评机构名单看…...

学习IO的第八天
作业:使用信号灯循环输出ABC sem.c #include <head.h>union semun {int val; /* Value for SETVAL */struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */unsigned short *array; /* Array for GETALL, SETALL */struct seminf…...

【clickhouse】ck远程访问另一个ck
代码实现 CREATE TABLE tmp.tbsas remote( host, database_name, table_name, user, password );就相当于从ck1直接请求ck2 参考文档 https://github.com/ClickHouse/ClickHouse/issues/15295 https://clickhouse.com/docs/zh/sql-reference/table-functions/remote...

Django的logging-日志模块的简单使用方法
扩展阅读: Python-Django的“日志功能-日志模块(logging模块)-日志输出”的功能详解 现在有下面的Python代码: # -*- coding: utf-8 -*-def log_out_test(content_out):print(content_out)content1 "i love you01" log_out_test(content1)现…...

argparse --- 命令行选项、参数和子命令解析器
3.2 新版功能. 源代码: Lib/argparse.py 教程 此页面包含该 API 的参考信息。有关 Python 命令行解析更细致的介绍,请参阅 argparse 教程。 argparse 模块可以让人轻松编写用户友好的命令行接口。 程序定义它需要哪些参数,argparse 将会知…...

洛谷 P8802 [蓝桥杯 2022 国 B] 出差
文章目录 [蓝桥杯 2022 国 B] 出差题目链接题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路解析CODE [蓝桥杯 2022 国 B] 出差 题目链接 https://www.luogu.com.cn/problem/P8802 题目描述 A \mathrm{A} A 国有 N N N 个城市,编号为 1 … N …...

fastadmin配置教程
第一. 打开小皮,创建一个网站 第二. 打开fastadmin官网,下载压缩包 下载好后是这个样子 打开网站的根目录,将这个压缩包压缩到你网站的根目录里 第三,小皮里面创建一个数据库 第四,然后打开网站,输入创…...

golang游戏服务器 - tgf系列课程01
TGF框架的特点和功能 课程介绍了TGF框架的特点和功能在第一节课程中我们并不会介绍框架的使用。我们希望在这节课程中,能让你了解到tgf是一个什么样的框架 概要 本节课程介绍了TGF框架的特点和功能。TGF是一个开箱即用的服务器框架, 适合中小型团队和独立开发者进行游戏开发。…...

react dom的diff理解及性能优化
diff的三大过程 当某个值变化时,他从根组件寻找 (key,state,props,context) 当父组件稳定时,react会跳过子组件的props的对比 只有当当前组件值改变时,从他开始,所有的子孙节点都会对比props props是全等比较,所以&am…...

【acwing】92. 递归实现指数型枚举
穿越隧道 递归枚举、位运算 方法① 从1到n,顺序访问每位数,是否选择,每位数有两种状态,选1或不选0. AC代码如下: #include <iostream> using namespace std;const int N 100; // bool st[N]; int n;void dfs(in…...

【面试】Java最新面试题资深开发-分布式系统中的CAP理论
问题六:分布式系统中的CAP理论 分布式系统的设计涉及到CAP理论,即一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)。请解释一下CAP理论是什么&#x…...

Windows下使用CMD修改本地IP
在网络适配器界面查看当前网线连接的哪个网口,我当前连的是 以太网 这个名字的: 在windows下使用管理员权限打开CMD命令工具,输入如下命令(如我想本地ip改成192.168.2.4): netsh interface ip set address "以太网" st…...

20231211-DISM++安装win10-22h2-oct
20231211-DISM安装win10-22h2-oct 一、软件环境 zh-cn_windows_10_consumer_editions_version_22h2_updated_oct_2023_x64_dvd_eb811ccc.isowepe x64 v2.3标签:win10 22h2 wepe dism分栏:WINDOWS 二、硬件环境 8G或以上的有PE功能的启动U盘一个台式机…...

前端知识笔记(五)———前端密钥怎么存储,才最安全?
前端密钥存储安全是非常重要的,具体原因如下: 保护敏感数据:密钥用于保护敏感数据的安全性。如果密钥泄露,攻击者可能能够访问和篡改敏感数据,导致数据泄露、数据被篡改或系统被入侵。 防止恶意使用:在前端…...

【智能家居】智能家居项目
智能家居项目目录 项目目录结构 完整而典型的项目目录结构 CMake模板 CMake编译运行 README.md 项目说明文档 智能家居项目目录 【智能家居】面向对象编程OOP和设计模式(工厂模式) 【智能家居】一、工厂模式实现继电器灯控制 【智能家居】二、添加火灾检测模块(…...

在AWS Lambda上部署标准FFmpeg工具——Docker方案
大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 启动EC23 编写调用FFmpeg的代码4 生成docker镜像4.1 安装和启动Docker服务4.2 编写Dockerfile脚本4.3 生成镜像 5 推送镜像5.1 创建存储库5.2 给EC2赋予角色5.2.1 创建策略5.2.2…...

C#网络应用程序(Web页面浏览器、局域网聊天程序)
目录 一、创建Web页面浏览器 1.示例源码 2.生成效果 二、局域网聊天程序 1.类 2.服务器端 3.客户端 一、创建Web页面浏览器 TextBox 控件用来输入要浏览的网页地址,Button控件用来执行浏览网页操作, WebBrowser控件用来显示要浏览的网页。这个控…...

MacOS 14挂载NTFS 硬盘的最佳方式(免费)
categories: [Tips] tags: MacOS 写在前面 众所周知, MacOS 上面插入 NTFS磁盘格式的话, 磁盘可以向 Mac 写入数据, 但是 Mac 上的数据不能写入磁盘(这是因为 MacOS 的内核扩展禁用了 NTFS 这个格式, 可能是出于安全性或其他原因) 之前一直是使用某 pojie 的 NTFS 工具的, 虽然…...

SpringAOP专栏二《原理篇》
上一篇SpringAOP专栏一《使用教程篇》-CSDN博客介绍了SpringAop如何使用,这一篇文章就会介绍Spring AOP 的底层实现原理,并通过源代码解析来详细阐述其实现过程。 前言 Spring AOP 的实现原理是基于动态代理和字节码操作的。不了解动态代理和字节码操作…...

冒泡排序(函数)
冒泡排序,将一个列表中的两个元素进行比较,并将最小的元素交换到顶部。两个元素中较小的会冒到顶部,而较大的会沉到底部,该过程将被重复执行,直到所有元素都被排序。 输入格式: 输入在第1行中给出N(1<N…...

Vue3中的defineModel
目录 一、vue3的defineModel介绍 二、defineModel使用 (1)在vite.config.js中开启 (2)子组件 (3)父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢?这里有这样一种场景&…...

动态内存管理(C语言)
前言 在学习数据结构时,掌握指针、结构体和动态内存管理是非常关键的,它们就像是搭建程序框架和操作内存的工具箱,需要熟练掌握才能更加游刃有余地进行编程。 指针和结构体我们已经在之前详细的讲过了,今天我将带大家学习动态内存…...

区块链实验室(32) - 下载arm64的Prysm
Prysm是Ethereum的共识层。 1. 下载prysm.sh curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod x prysm.sh2. 下载x86版prysm共识客户端 ./prysm.sh beacon-chain --download-only3.下载arm64版prysm共识客…...

flutter学习-day3-dart基础
📚 目录 变量声明操作符数据类型控制流错误处理和捕获函数mixin异步 FutureStream 本文学习和引用自《Flutter实战第二版》:作者:杜文 1. 变量声明 var 类似于 JavaScript 中的var,它可以接收任何类型的变量,但最大…...

gitblit自建git仓库
在Ubuntu服务器 安装 java sudo apt-get update sudo apt-get install openjdk-8-jdk # 或者其它你喜欢的版本//sudo snap install gitblit 验证: java -version下载 gitblit https://github.com/gitblit-org/gitblit/releases解压/usr/local tar -zxvf gitb…...

二百一十一、Flume——Flume实时采集Linux中的Hive日志写入到HDFS中(亲测、附截图)
一、目的 为了实现用Flume实时采集Hive的操作日志到HDFS中,于是进行了一场实验 二、前期准备 (一)安装好Hadoop、Hive、Flume等工具 (二)查看Hive的日志在Linux系统中的文件路径 [roothurys23 conf]# find / -name…...

python 实现 AIGC 大模型中的概率论:生日问题的基本推导
在上一节中,我们对生日问题进行了严谨的阐述:假设屋子里面每个人的生日相互独立,而且等可能的出现在一年 365 天中的任何一天,试问我们需要多少人才能让某两个人的生日在同一天的概率超过 50%。 处理抽象逻辑问题的一个入手点就是…...

YOLOv8算法改进【NO.87】引入上下文引导网络(CGNet)的Light-weight Context Guided改进C2_f
前 言 YOLO算法改进系列出到这,很多朋友问改进如何选择是最佳的,下面我就根据个人多年的写作发文章以及指导发文章的经验来看,按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通: 第一,创新主干特征提取网络,将整个Backbone改…...