k8s1.28-helm安装kafka-Raft集群

参考文档

[Raft Kafka on k8s 部署实战操作 - 掘金 (juejin.cn)](https://juejin.cn/post/7349437605857411083?from=search-suggest)

部署 Raft Kafka(Kafka 3.3.1 及以上版本引入的 KRaft 模式)在 Kubernetes (k8s) 上,可以简化 Kafka 集群的管理,因为它不再依赖于 Zookeeper
image.png

集群测试参考文档

[Helm实践---安装kafka集群 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/642515749)

部署 Raft Kafka 集群的基本步骤

1)准备 Kubernetes 集群

确保你有一个运行中的 Kubernetes 集群,并且已经配置了 kubectl 命令行工具。 部署教程如下:

创建storageclass做动态存储
(1)创建ServiceAccount、ClusterRole、ClusterRoleBinding等,为nfs-client-provisioner授权
# rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: nfs-client-provisioner-runner
rules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: run-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: ClusterRolename: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
rules:- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: Rolename: leader-locking-nfs-client-provisionerapiGroup: rbac.authorization.k8s.io
(2)部署nfs-client-provisioner

vim 02-nfs-provisioner.yaml

nfs-client-provisioner 是一个 Kubernetes 的简易 NFS 的外部 provisioner,本身不提供 NFS,需要现有的 NFS 服务器提供存储。
注意:地址和目录要改成实际的NFS服务对应配置

apiVersion: apps/v1kind: Deploymentmetadata:name: nfs-client-provisionerlabels:app: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default  #与RBAC文件中的namespace保持一致spec:replicas: 1selector:matchLabels:app: nfs-client-provisionerstrategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisioner#image: quay.io/external_storage/nfs-client-provisioner:latest#这里特别注意,在k8s-1.20以后版本中使用上面提供的包,并不好用,这里我折腾了好久,才解决,后来在官方的github上,别人提的问题中建议使用下面这个包才解决的,我这里是下载后,传到我自已的仓库里image: gmoney23/nfs-client-provisioner:latest# image: easzlab/nfs-subdir-external-provisioner:v4.0.1# image: registry-op.test.cn/nfs-subdir-external-provisioner:v4.0.1volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: kafka-nfs-storage  #provisioner名称,请确保该名称与 nfs-StorageClass.yaml文件中的provisioner名称保持一致- name: NFS_SERVERvalue:    #NFS Server IP地址- name: NFS_PATHvalue: "/data/kafka"    #NFS挂载卷volumes:- name: nfs-client-rootnfs:server:   #NFS Server IP地址path: "/data/kafka"     #NFS 挂载卷# imagePullSecrets:# - name: registry-op.test.cn
部署
kubectl apply -f rbac.yaml 
kubectl apply -f nfs-provisioner.yaml 
kubectl get pod 
NAME                                     READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-888d748c6-7c8hh   1/1     Running   0          4m24s
三、创建StorageClass

/root/test/storageclass-kafka

apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: nfs-storageclassprovisioner: kafka-nfs-storage #这里的名称要和provisioner配置文件中的环境变量PROVISIONER_NAME保持一致parameters:#  archiveOnDelete: "false"archiveOnDelete: "true"reclaimPolicy: Retain

image.png

安装 helm

下载地址:github.com/helm/helm/r…

# 下载包
wget https://get.helm.sh/helm-v3.9.4-linux-amd64.tar.gz
# 解压压缩包
tar -xf helm-v3.9.4-linux-amd64.tar.gz
# 制作软连接
ln -s /opt/helm/linux-amd64/helm /usr/local/bin/helm
# 验证
helm version
helm help

配置 Helm chart

如果你使用 Bitnami 的 Kafka Helm chart,你需要创建一个 values.yaml 文件来配置 Kafka 集群。在该文件中,你可以启用 KRaft 模式并配置其他设置,如认证、端口等。

# 添加下载源
helm repo add bitnami https://charts.bitnami.com/bitnami
# 下载
helm pull bitnami/kafka --version 26.0.0
# 解压
tar -xf kafka-26.0.0.tgz# 修改配置
vi kafka/values.yaml#搜索kafka
helm search  repo  kafka   (3).拉取chart包格式:  
# helm pull 远程仓库chart包名 --version 0.4.3 --untar 
#从远程仓库拉取指定版本的chart包到本地并解压,--untar是解压,不加就是压缩包  
# helm pull 远程仓库chart包名 --untar #从远程仓库拉取最新版本的chart包到本地并解压,--untar是解压,不加就是压缩包

image.png

以下是一个 values.yaml 的示例配置:
先备份模板自带的
image.png

image:registry: docker.iorepository: bitnami/kafkatag: 3.7.0-debian-12-r0listeners:client:containerPort: 9092# 默认是带鉴权的,SASL_PLAINTEXTprotocol: PLAINTEXTname: CLIENTsslClientAuth: ""controller:replicaCount: 3 # 控制器的数量persistence:storageClass: "kafka-controller-local-storage"size: "10Gi"# 目录需要提前在宿主机上创建local:- name: kafka-controller-0host: "local-168-182-110"path: "/opt/bigdata/servers/kraft/kafka-controller/data1"- name: kafka-controller-1host: "local-168-182-111"path: "/opt/bigdata/servers/kraft/kafka-controller/data1"- name: kafka-controller-2host: "local-168-182-112"path: "/opt/bigdata/servers/kraft/kafka-controller/data1"broker:replicaCount: 3  # 代理的数量persistence:storageClass: "kafka-broker-local-storage"size: "10Gi"# 目录需要提前在宿主机上创建local:- name: kafka-broker-0host: "local-168-182-110"path: "/opt/bigdata/servers/kraft/kafka-broker/data1"- name: kafka-broker-1host: "local-168-182-111"path: "/opt/bigdata/servers/kraft/kafka-broker/data1"- name: kafka-broker-2host: "local-168-182-112"path: "/opt/bigdata/servers/kraft/kafka-broker/data1"service:type: NodePortnodePorts:#NodePort 默认范围是 30000-32767client: "32181"tls: "32182"# Enable Prometheus to access ZooKeeper metrics endpoint
metrics:enabled: true
kraft:enabled: true

重点修改地方
1
image.png

2
image.png

添加以下几个文件:
kafka/templates/broker/pv.yaml
{{- range .Values.broker.persistence.local }}
---
apiVersion: v1
kind: PersistentVolume
metadata:name: {{ .name }}labels:name: {{ .name }}
spec:storageClassName: {{ $.Values.broker.persistence.storageClass }}capacity:storage: {{ $.Values.broker.persistence.size }}accessModes:- ReadWriteOncelocal:path: {{ .path }}nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- {{ .host }}
---
{{- end }}
  • kafka/templates/broker/storage-class.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: {{ .Values.broker.persistence.storageClass }}
provisioner: kubernetes.io/no-provisioner
  • kafka/templates/controller-eligible/pv.yaml
{{- range .Values.controller.persistence.local }}
---
apiVersion: v1
kind: PersistentVolume
metadata:name: {{ .name }}labels:name: {{ .name }}
spec:storageClassName: {{ $.Values.controller.persistence.storageClass }}capacity:storage: {{ $.Values.controller.persistence.size }}accessModes:- ReadWriteOncelocal:path: {{ .path }}nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- {{ .host }}
---
{{- end }}
  • kafka/templates/controller-eligible/storage-class.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: {{ .Values.controller.persistence.storageClass }}
provisioner: kubernetes.io/no-provisioner
宿主机准备工作

image.png

4使用 Helm 部署 Kafka 集群

# 先准备好镜像
docker pull docker.io/bitnami/kafka:3.6.0-debian-11-r0
docker tag docker.io/bitnami/kafka:3.6.0-debian-11-r0 registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/kafka:3.6.0-debian-11-r0
docker push registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/kafka:3.6.0-debian-11-r0# 开始安装
$ kubectl create namespace kafka
$ helm install -f values.yaml kafka bitnami/kafka --namespace kafka

image.png

image.png

查看运行的pod
image.png

部署单节点集群
  • 下面这个案例关闭了持久化存储,仅演示部署效果
 helm upgrade --install kafka \--namespace kafka-demo \--create-namespace \--set broker.combinedMode.enabled="true" \--set broker.persistence.enabled="false" \bitnami/kafka

Controller 与 Broker 分离部署
  helm upgrade --install kafka \--namespace kafka-demo \--create-namespace \--set broker.persistence.size="20Gi" \bitnami/kafka

默认已开启持久化存储。

获取ip和port
方式一:

其实安装kafka安装好之后输出的信息里面就有打印ip,关键是这个ip是我们自己定义的,所以我们事前也是知道的

方式二:当然你也可以通过下面命令获取

获取IP地址:

kubectl get nodes --namespace kafka -o jsonpath="{.items[0].status.addresses[0].address}"

获取端口:

方式一:

kubectl get --namespace kafka -o jsonpath="{.spec.ports[0].nodePort}" services kafka

方式二:

echo "$(kubectl get svc --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=kafka,app.kubernetes.io/component=kafka,pod" -o jsonpath='{.items[*].spec.ports[0].nodePort}' | tr ' ' '\n')"

获取取ip和port之后,我们通过配置springcloud stream即可创建新连接,如下所示:

kafka集群测试

这里通过两种方式测试下kafka集群,区别只是一个是新起一个容器进行测试,另一个则是在原来的基础进行测试:

3.1 方式一

新起一个容器

1.运行一个kafka-client,用于连接kafka集群
# 创建客户端
kubectl run kraft-kafka-client --restart='Never' --image docker.io/bitnami/kafka:3.7.0-debian-12-r0 --namespace kafka --command -- sleep infinity
kubectl run kraft-kafka-client --restart='Never' \--image docker.io/bitnami/kafka:3.7.0-debian-12-r0 \--namespace kafka --command -- sleep infinity
上面参数说明:
- `kubectl run kafka-client`: 使用 `kubectl` 命令创建一个名为 `kafka-client` 的 Pod
- `--restart='Never'`: 设置 Pod 的重启策略为 "Never",这意味着 Pod 不会自动重启
- `--image registry.cn-hangzhou.aliyuncs.com/abroad_images/kafka:3.5.0-debian-11-r1`: 指定要在 Pod 中使用的容器镜像。这里使用的是 `registry.cn-hangzhou.aliyuncs.com/abroad_images/kafka:3.5.0-debian-11-r1` 镜像
- `--namespace public-service`: 指定要在名为 `public-service` 的命名空间中创建 Pod
- `--command -- sleep infinity`: 在容器中执行命令 `sleep infinity`,以保持 Pod 持续运行。`--command` 表示后面的内容是一个命令而不是一个参数,`sleep infinity` 是一个常用的命令,使得容器无限期地休眠
查看pod,已成功建立

image.png

2.在k8s-master01节点上开启两个窗口,一个用于生产者,一个用作消费者。

(1)生产者窗口

进入kafka创建一个名为test的topic,出现>代表成功

2.1方式一
[root@k8s-master01 kafka]#  kubectl exec -it  kraft-kafka-client  -n  kafka -- /bin/bash
I have no name!@kafka-client:/$ cd /opt/bitnami/kafka/bin
I have no name!@kafka-client:/opt/bitnami/kafka/bin$ kafka-console-producer.sh --broker-list kafka-broker-0.kafka-broker-headless.kafka.svc.cluster.local:9092,kafka-broker-1.kafka-broker-headless.kafka.svc.cluster.local:9092,kafka-broker-2.kafka-broker-headless.kafka.svc.cluster.local:9092 --topic test
>
kafka-console-producer.sh --broker-list \kafka-broker-0.kafka-broker-headless.kafka.svc.cluster.local:9092,\kafka-broker-1.kafka-broker-headless.kafka.svc.cluster.local:9092,\kafka-broker-2.kafka-broker-headless.kafka.svc.cluster.local:9092 \--topic test
上面参数说明:
- `kafka-console-producer.sh`:用于创建生产者  
- `--broker-list kafka-0.kafka-headless.public-service.svc.cluster.local:9092,kafka-1.kafka-headless.public-service.svc.cluster.local:9092,kafka-2.kafka-headless.public-service.svc.cluster.local:9092`:指定要连接的 Kafka Broker 列表。使用逗号分隔多个 Broker 的地址。在这里,指定了三个 Kafka Broker 的地址  
- `--topic test`:指定要发布消息的主题名称,这里使用的是 "test"

image.png

(2)消费者窗口
[root@k8s-master01 kafka]# kubectl exec -it  kafka-client -n  public-service -- bash
I have no name!@kafka-client:/$ cd  /opt/bitnami/kafka/bin/
I have no name!@kafka-client:/opt/bitnami/kafka/bin$ kafka-console-consumer.sh --bootstrap-server kafka.public-service.svc.cluster.local:9092 
上面参数说明:
- `kafka-console-consumer.sh`:用于启动消费者
- `--bootstrap-server localhost:9092`:指定用于引导连接到 Kafka 集群的 Kafka Broker 的地址。使用的是本地主机(localhost)上的 Kafka Broker,并监听 9092 端口
- `--topic test`:指定要发布消息的主题名称,这里使用的是 "test"
- `--from-beginning`:设置消费者从主题的开始处开始消费消息。这意味着消费者将从主题中的最早可用消息开始消费
- 3.开始测试,观察到消费正常

(1)生产者窗口

>test2 
>test1

(2)消费者窗口

test2 
test1
2.2 方式二
1.进入kafka创建一个名为testtopic的topic
kubectl exec -it kafka-0 -n public-service -- bashcd /opt/bitnami/kafka/binkafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testtopicCreated topic testtopic.

image.png

上面参数说明:
- `--create`:指示 `kafka-topics.sh` 命令创建一个新的主题
- `kafka-topics.sh`:用于创建topic
- `--bootstrap-server localhost:9092`:指定用于引导连接到 Kafka 集群的 Kafka Broker 的地址。使用的是本地主机(localhost)上的 Kafka Broker,并监听 9092 端口
- `--replication-factor 1`:设置主题的副本因子(replication factor),指定每个分区的副本数量。
- `--partitions 1`:设置主题的分区数,指定要创建的分区数量
- `--topic testtopic`:指定要创建的主题的名称,这里使用的是 "testtopic"
2.启动消费者
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic
上面参数说明:
- `kafka-console-consumer.sh`:用于创建消费者
- `--bootstrap-server localhost:9092`:指定用于引导连接到 Kafka 集群的 Kafka Broker 的地址。使用的是本地主机(localhost)上的 Kafka Broker,并监听 9092 端口
3.新起一个窗口后,进入kafka,启动一个生产者后,输出hello字段
[root@k8s-master01 kafka]# kubectl exec -it kafka-0 -n public-service -- bashI have no name!@kafka-0:/$ kafka-console-producer.sh --bootstrap-server localhost:9092 --topic testtopic
>hello

image.png

上面参数说明:
- `kafka-console-consumer.sh`:用于创建生产者
- `--bootstrap-server localhost:9092`:指定用于引导连接到 Kafka 集群的 Kafka Broker 的地址。使用的是本地主机(localhost)上的 Kafka Broker,并监听 9092 端口
4.在消费者窗口上进行查看,观察到消费正常
I have no name!@kafka-broker-0:/opt/bitnami/kafka/bin$ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopichello

image.png

四、kafka集群扩容

关于kafka集群扩容,这里介绍两种方式:一种是修改副本数进行扩容,另一种是使用helm upgrade进行扩容

4.1 方式一

1.修改values.yaml相应配置,搜索replicaCount,将副本数修改为5
[root@k8s-master01 ~]# cd /root/kafka[root@k8s-master01 kafka]# vim values.yaml

image.png

2.开始扩容
[root@k8s-master01 ~]# cd /root/kafka
[root@k8s-master01 kafka]#  helm upgrade -n public-service kafka .

3.查看pod建立情况,观察到已经成功扩容

4.2 方式二

其实这种方式只针对命令行方式安装kafka集群

1.直接使用helm upgrade命令进行扩容
helm upgrade kafka bitnami/kafka --set zookeeper.enabled=false --set replicaCount=3 --set externalZookeeper.servers=zookeeper --set persistence.enabled=false -n public-service

2.查看pod建立情况,观察到已经成功扩容

五、kafka集群删除

1.查看安装的集群
helm list -A

image.png

2.删除kafka集群
helm delete kafka  -n kafka
3. 删除实例
helm uninstall kafka -n kafka
4. 删除Kafka 命名空间下的所有 PVC(持久卷声明)
kubectl delete pvc --all -n kafka

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

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

相关文章

uniapp选择退出到指定页面

方法一:返回上n层页面 onUnload(){uni.navigateBack({delta:5,//返回上5层})},方法二:关闭当前页面,跳转到应用内的某个页面。 uni.redirectTo({url: "../home/index"//页面地址}) 方法三:关闭所有页面,打…

xss基础

第一关&#xff1a; html部分标签可以解析js <script>alert (1)</script> 第二关&#xff1a; 可以看到value用双引号闭合了&#xff0c;使用上一关的payload没用&#xff0c;尝试一下闭合这个input 所以使用双引号和>闭合后再加入上一关的payload 11"…

在 macOS 上创建安装程序

在 macOS 上创建安装程序通常涉及使用 Apple 提供的 PackageMaker 工具或者创建一个 .dmg&#xff08;磁盘映像文件&#xff09;&#xff0c;其中包含应用程序和安装脚本。那么如果在安装中出现下面情况可以用我的解决方案。 一、问题背景 开发者编写了一个 Python 应用程序&a…

AURORA64B66B IP核使用

文章目录 前言一、IP核配置二、设计框图三、上板效果总结 前言 前面我们基于GT 64B66B设计了自定义PHY层&#xff0c;并且也介绍过了基于AURORA8B18B IP核的使用&#xff0c;AURORA8B18B IP核的使用可以说是与AURORA8B18B IP核完全一致&#xff0c;可参考前文&#xff1a;http…

微信小程序实现滚动标签

使用scroll-view标签可实现组件滚动标签 1、list中 list.wxml代码如下: <!--pages/list/list.wxml--> <navigation-bartitle"小程序" back"{{false}}"color"black" background"#FFF"></navigation-bar><scroll-…

顺子日期(StringBuffer)

题目 public class Main {static int[] date new int[] {0,31,28,31,30,31,30,31,31,30,31,30,31};public static boolean res(StringBuffer s) {String ss s.toString();//yyrrfor(int i0;i<2;i) {int x Integer.parseInt(s.charAt(i)"");int y Integer.par…

基于Swin Transformers的乳腺癌组织病理学图像多分类

乳腺癌的非侵入性诊断程序涉及体检和成像技术&#xff0c;如乳房X光检查、超声检查和磁共振成像。成像程序对于更全面地评估癌症区域和识别癌症亚型的敏感性较低。 CNN表现出固有的归纳偏差&#xff0c;并且对于图像中感兴趣对象的平移、旋转和位置有所不同。因此&#xff0c;…

如何插入LinK3D、CSF、BALM来直接插入各个SLAM框架中

0. 简介 LinK3D、CSF、BALM这几个都是非常方便去插入到激光SLAM框架的。这里我们会分别从多个角度来介绍如何将每个框架插入到SLAM框架中 1. LinK3D:三维LiDAR点云的线性关键点表示 LinK3D的核心思想和基于我们的LinK3D的两个LiDAR扫描的匹配结果。绿色线是有效匹配。当前关…

【信号与系统 - 5】傅里叶变换性质2

这一篇涉及剩余的几个性质 ⑤对称性&#xff08;互易特性&#xff09; ⑥时/频域卷积 ⑦时域微/积分特性 ⑧频域微/积分特性 1 对称性&#xff08;互易特性&#xff09; 总的来说&#xff0c;有&#xff1a; 若 f ( t ) ↔ F ( j w ) f(t)\leftrightarrow{F(jw)} f(t)↔F(jw)…

设计方案:914-基于64路AD的DBF波束形成硬件

一、硬件概述 &#xff24;&#xff22;&#xff26;技术的实现全部是在数字域实现&#xff0c;然而天线阵列接收的信号经过多次混频后得到的中频信号是模拟信号&#xff0c;实现&#xff24;&#xff22;&#xff26;处理并充分发挥&#xff24;&#xff22;&…

MSOLSpray:一款针对微软在线账号(AzureO365)的密码喷射与安全测试工具

关于MSOLSpray MSOLSpray是一款针对微软在线账号&#xff08;Azure/O365&#xff09;的密码喷射与安全测试工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以直接对目标账户执行安全检测。支持检测的内容包括目标账号凭证是否有效、账号是否启用了MFA、租户账号是…

智慧园区革新之路:山海鲸可视化技术引领新变革

随着科技的飞速发展&#xff0c;智慧园区已成为城市现代化建设的重要组成部分。山海鲸可视化智慧园区解决方案&#xff0c;作为业界领先的数字化革新方案&#xff0c;正以其独特的技术优势和丰富的应用场景&#xff0c;引领着智慧园区建设的新潮流。 本文将带大家一起了解一下…

解决 macOS 系统向日葵远程控制鼠标、键盘无法点击的问题

解决 macOS 系统向日葵远程控制鼠标\键盘无法点击的问题 1、首先正常配置&#xff0c;在系统偏好设置 - 安全性与隐私内&#xff0c;将屏幕录制、文件和文件夹、完全的磁盘访问权限、辅助功能全部都加入向日葵客户端 2、通过打开的文件访达&#xff0c;使用command shift G…

(2024,Attention-Mamba,MoE 替换 MLP)Jamba:混合 Transformer-Mamba 语言模型

Jamba: A Hybrid Transformer-Mamba Language Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 模型架构 3. 收获的好处 3.1 单个 80GB GPU 的 Jamba 实现 …

如何在 iPhone 15/14/13/12/11/XS/XR 上恢复误删除的短信?

无论你的iPhone功能多么强大&#xff0c;数据丢失的情况仍然时有发生&#xff0c;所以当你发现一些重要的消息有一天丢失了。别担心&#xff0c;让自己冷静下来&#xff0c;然后按照本页的方法轻松从 iPhone 中检索已删除的短信。 在这里&#xff0c;您需要奇客数据恢复iPhone…

【AI】ubuntu 22.04 本地搭建Qwen-VL 支持图片识别的大语言模型 AI视觉

下载源代码 yeqiangyeqiang-MS-7B23:~/Downloads/src$ git clone https://gh-proxy.com/https://github.com/QwenLM/Qwen-VL 正克隆到 Qwen-VL... remote: Enumerating objects: 584, done. remote: Counting objects: 100% (305/305), done. remote: Compressing objects: 10…

代码+视频,手动绘制logistic回归预测模型校准曲线(Calibration curve)(2)

校准曲线图表示的是预测值和实际值的差距&#xff0c;作为预测模型的重要部分&#xff0c;目前很多函数能绘制校准曲线。 一般分为两种&#xff0c;一种是通过Hosmer-Lemeshow检验&#xff0c;把P值分为10等分&#xff0c;求出每等分的预测值和实际值的差距 另外一种是calibrat…

JetBrains IDE 2024.1 发布 - 开发者工具

JetBrains IDE 2024.1 (macOS, Linux, Windows) - 开发者工具 CLion, DataGrip, DataSpell, Fleet, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, Rider, RubyMine, WebStorm 请访问原文链接&#xff1a;JetBrains IDE 2024.1 (macOS, Linux, Windows) - 开发者工具&#xff0…

在线免费图像处理

功能 尺寸修改(自定义和内置常用的照片尺寸)图像压缩(比较好的情况最高可以压缩 10 倍, 如果是无损压缩可以压缩 5 倍左右,参数范围 50~70 左右)图像方向修改图像格式修改修改后的效果支持实时反馈, 并且支持点击图像预览,同时保留历史修改图片(在预览中可以查看) 入口 图片…

嵌入式学习49-单片机2

指令周期 1M 机器周期 12M &#xff08;晶体震荡器产生&#xff09; 中断两种方式 …