实训笔记8.23
8.23笔记
- 8.23笔记
- 一、Hive中函数
- 1.1 Hive中内置函数
- 1.1.1 数学函数
- 1.1.2 字符串函数
- 1.1.3 日期函数
- 1.1.4 条件函数
- 1.1.5 特殊函数
 
- 1.2 Hive的自定义函数
- 1.2.1 自定义UDF
- 1.2.2 自定义UDTF
 
 
- 二、Hive的压缩机制
- 三、数据同步工具Sqoop的安装和使用
- 3.1 sqoop的概念
- 3.2 sqoop的核心功能
- 3.2.1 数据导入import
- 3.2.2 数据导出export
 
- 3.3 sqoop的底层实现
- 3.4 sqoop的安装和部署
- 3.4.1 sqoop软件安装三部曲
 
- 3.5 sqoop的基本操作
- 3.6 sqoop的核心功能操作
- 3.6.1 数据导入import
- 3.6.2 数据导出
 
 
- 四、相关代码
 
8.23笔记
一、Hive中函数
Hive主要是用来做统计分析的,函数就是把一些常用的复杂的计算逻辑封装,Hive之所以可以实现统计分析,很大一部分取决于Hive中函数的概念
1.1 Hive中内置函数
1.1.1 数学函数
abs/pow/sqrt/…
1.1.2 字符串函数
-  concat/concat_ws 
-  split 
1.1.3 日期函数
- current_date()
- date_format(date,format)
- datediff(date,date)
- date_add(date,day)
- date_sub(date,day)
1.1.4 条件函数
- if
- case
1.1.5 特殊函数
-  字符串有关的特殊函数:解析URL类型的字符串的 - parse_url
- parse_url_tuple
 
-  数组/集合类型有关的函数 - array(T...) | map(string key,string value,string key,string value.....)
- explode(array/map)---UDTF
- collect_set/collect_list(col) --UDAF
- split/concat_ws
 
-  侧视图函数lateral view 
侧视图函数都是要和UDTF函数结合使用的
lateral view udtf(x...) tableAlias as columnAlias
侧视图的作用就是将普通列的数据和UDTF函数执行完成之后的多行多列的数据做笛卡尔乘积,实现一些普通HQL无法实现的功能
select xxxx from tableA lateral view udtf(x...) tableAlias as columnAlias
-  开窗函数 -  over(partition by 字段 order by 字段 asc|desc rows between 上边界 and 下边界)开窗函数的作用就是把表中的数据构建出多个虚拟窗口(窗口其实就是分组),查询表中数据的时候,会识别到数据属于哪个窗口,得到这个窗口相关的一些信息和普通数据列一些返回。 partition by 的作用就是用来规定以哪个字段进行分组(开窗) order by的作用就是对划分的窗口的以指定的字段进行排序 rows between的作用是为了划分窗口的边界的,每一个窗口默认的边界是 分组中的所有数据,但是窗口也可以是分组的部分行数据。 默认情况下 我们不写边界,默认边界(默认无上边界也无下边界)就是一个组中的所有数据 
-  开窗函数不能单独使用,开窗函数需要集成一些特殊函数一起使用 -  first_value(col),last_value(col)获取一个窗口中某一列的第一个值或者最后一个值 
-  排名函数 -  row_number()
-  rank()
-  dense_rank()根据当前行数据在窗口的排名 赋予一个排名编号 
 
-  
-  聚合函数: sum/avg/count/max/min——————获取一个窗口的一个聚合值 
 
-  
-  【注意】开窗函数要和一些其他函数结合使用,而其他函数在使用的时候,大部分函数默认的边界都是无上边界和无下边界,而有少部分函数如果没有写窗口边界默认不是无边界,而是有边界的 所以以后大家在使用窗口函数的时候,建议大家最好把窗口边界也给声明上。 
 
-  
1.2 Hive的自定义函数
1.2.1 自定义UDF
1.2.2 自定义UDTF
二、Hive的压缩机制
Hive底层会转换成为MapReduce运行,MapReduce阶段中间都是可以进行压缩的。因此Hive也支持设置压缩机制(也是设置转换的MR程序底层是Map阶段压缩 还是reduce阶段压缩)
Hive底层也可以转换成为Spark或者TEZ程序运行,Spark和TEZ的压缩和Mapreduce的压缩是不一样的。
三、数据同步工具Sqoop的安装和使用
3.1 sqoop的概念
在大部分常见的软件中,比如淘宝、拼多多…,网站都会产生大量的数据 电商网站:订单数据、商品数据、分类数据、用户信息数据、用户行为数据等等 课程网站:订单数据、视频数据、课程数据、用户信息数据等等 … 虽然说不同领域的数据格式和数据含义不一样,但是他们都有一个公共点:数据大部分都是在RDBMS关系型数据库进行存放的。如果我们要对某一个领域的数据进行大数据的统计分析,首先我们必须先把数据从非大数据环境同步到大数据环境中。 大部分数据都是在RDBMS存放的,大数据环境大部分都是HDFS、Hive、HBase。我们需要把RDBMS的数据同步到大数据环境中。
SQOOP软件是Apache开源的顶尖项目,sqoop 被设计用来在RDBMS和Hadoop(Hive、HDFS、HBase)之间进行数据传输的工具 因此sqoop的适用场景限制就非常大,因此这个技术基本很少更新了。软件基本已经从apache退役
3.2 sqoop的核心功能
3.2.1 数据导入import
指的是将数据从RDBMS(MySQL\ORACLE\SQL SERVER)导入到Hadoop环境(HDFS、HBASE、Hive)中
导入的作用就是将数据从非大数据环境导入到大数据环境通过大数据技术做统计分析的
3.2.2 数据导出export
指的是将数据从Hadoop环境(HDFS、Hive、HBase)导出到RDBMS中
将数据统计分析完成得到结果指标,指标在大数据环境存放的,如果对指标做可视化展示,数据在大数据环境下很难进行可视化展示的,因此我们需要把数据从大数据环境导出到非大数据环境RDBMS中进行可视化展示等后续操作
3.3 sqoop的底层实现
sqoop技术也是Hadoop生态的一部分,因为Sqoop进行导入和导出数据时,需要编写针对的导入和导出命令,但是这个命令底层也会转换成为MapReduce程序进行运行。
SQOOP运行基于MapReduce和YARN进行运行
3.4 sqoop的安装和部署
因此sqoop底层是基于Hadoop的,因此sqoop也是安装一个单节点的即可,sqoop也是提供了一个可以导入和导出数据的命令行客户端
3.4.1 sqoop软件安装三部曲
- 上传解压
- 配置环境变量
- 修改软件的配置文件——————sqoop-env.sh文件
- sqoop的特殊配置 - sqoop可以数据把数据在大数据和非大数据环境之间进行迁移的,非大数据环境主要是RDBMS关系型数据库
- sqoop连接RDBMS 底层也是基于JDBC进行连接的,因此如果要使用sqoop连接rdbms,我们需要把对应数据库的jdbc驱动程序jar包放到sqoop的lib目录下
- 需要把mysql-connector-java,jar 放到sqoop的lib目录下即可
 
3.5 sqoop的基本操作
- sqoop查看RDBMS中有哪些数据库 sqoop list-databases
- sqoop查看某一个数据库下有哪些数据表 sqoop list-tables
- 还可以通过sqoop执行sql语句 sqoop eval --query "sql"
需要跟数据库的连接参数
–connect jdbcurl
–username 用户名
–password 密码
3.6 sqoop的核心功能操作
3.6.1 数据导入import
指的是将数据从RDBMS关系型数据库导入到Hadoop环境中(HDFS、Hive、HBase)
-  将RDBMS的数据导入到HDFS中 不常用 -  HDFS导入时连接的RDBMS的参数 参数 说明 –driver –connect –username –password [–table] 导入哪张数据表的数据 [–columns] 导入指定数据表的指定列的数据 [–query] 根据查询语句的结果导入数据 [–where] 筛选条件,根据指定的条件导入数据 
-  HDFS导入的参数 参数名 说明 –target-dir 导入到HDFS上的路径 –delete-target-dir 如果HDFS的路径存在 提前删除 [–as-textfile|sequencefile…] 导入到HDFS上的文件的格式 –num-mappers 指定导入的时候底层MapReduce启动多少个Map Task运行 –fields-terminated-by 指定导入的文件列和列的分隔符 –lines-terminated-by 指定导入的文件的行和行的分割符 
-  导入数据表的所有数据到HDFS: sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --target-dir /import --delete-target-dir --fields-terminated-by '=' --num-mappers 1 --as-sequencefile
-  导入数据表的指定列的数据到HDFS: sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --columns student_name,student_age --target-dir /import --delete-target-dir --fields-terminated-by ',' --num-mappers 1 --as-textfile
-  根据查询语句导入指定的数据到HDFS: -  --table table_name --where "条件"只能导入一张表的数据sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --columns student_name,student_age --where "student_age<40" --target-dir /import --delete-target-dir --fields-terminated-by ',' --num-mappers 1 --as-textfile
-  --query ""可以通过连接查询同时导入多张表的数据sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --query 'select * from student where student_age<40 and $CONDITIONS' --target-dir /import --delete-target-dir --fields-terminated-by ',' --num-mappers 1 --as-textfile
 
-  
 
-  
-  将RDBMS的数据导入到Hive数据表中常用 -  导入参数 -  HDFS导入时连接的RDBMS的参数 参数名 说明 –driver –connect –username –password [–table] 导入哪张数据表的数据 [–columns] 导入指定数据表的指定列的数据 [–query] 根据查询语句的结果导入数据 [–where] 筛选条件,根据指定的条件导入数据 
-  导入到Hive中的参数 参数名 说明 –hive-import 指定将数据导入到Hive的数据表,而非HDFS或者HBase –hive-database 指定将数据导入到Hive的哪个数据库中 –hive-table 指定将数据导入到Hive的哪个数据表中 –create-hive-table 如果Hive表没有提前存在,那么这个选项必须添加,会根据导入的数据自动推断创建Hive数据表,但是如果Hive中的数据表已经存在,那么这个参数一定不能添加 
-  如果我们将RDBMS中的数据导入到Hive中,有两种导入模式 -  全量导入 第一次导入RDBMS的数据到Hive中 - 将RDBMS对应的数据表中的数据全部导入Hive中
- --hive-overwrite将上述指定的数据全部到Hive对应的数据表,数据表会清空
 
-  增量导入 非第一次导入RDBMS数据到Hive -  将RDBMS数据表对应增加的新的数据导入到Hive中 
-  增量导入又分为两种方式:一种根据自增id导入,第二种根据一个时间戳增量导入 
-  根据RDBMS数据表的自增id导入: 参数名 说明 –check-column rdbms 数据表的自增列名 –incremental append –last-value 上一次导入的自增的值的最后一个 
-  根据RDBMS数据表的一个时间字段导入: 参数名 说明 –check-column rdbms 数据表的时间列 –incremental lastmodified –last-value “上一次导入的最后一条数据的时间戳” 
 
-  
 
-  
 
-  
-  全量导入 如果要做全量导入,Hive的数据表可以不用提前存在,使用 create-hive-table自动创建即可sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --hive-import --hive-database test --hive-table student --create-hive-table
-  增量导入如果要做增量导入,Hive数据表必须提前存在,而且还具备RDBMS对应数据表的历史数据 -  按照自增id增量导入 sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --hive-import --hive-database test --hive-table student --check-column student_id --incremental append --last-value 5
-  按照创建时间增量导入 hive-import目前还不支持时间戳增量的方式
 
-  
-  注意:如果将数据导入到Hive中,sqoop一共做了两步操作: 1、先通过MR程序把数据上传到HDFS上 2、使用hive的load装载命令将上传到HDFS上的数据文件加载到数据表中 sqoop操作Hive的时候,需要Hive的依赖,但是sqoop默认是没有hive的编程依赖的,因此sqoop迁移数据到hive会报错,如果不想报错,那么我们需要把hive-common.jar包复制到sqoop的lib目录下。 
 
-  
3.6.2 数据导出
四、相关代码
-- 时间日期函数
select date_sub("2022-10-1",2);create table student_score(student_id int,student_name string,student_class int,student_score double
);insert into student_score values(1,"zs",1,80.0),(2,"ls",1,90.0),(3,"ww",1,100.0),(4,"ml",1,85.0),(5,"zsf",2,80.0),(6,"zwj",2,70.0),(7,"qf",2,60.0);
select * from student_score;
-- 查询每一个学生的成绩,并且还要获取同一个班级的学生和前一个学生的成绩的差值
select a.*,abs(a.student_score-a.front_score) as score_diff 
from(select *, first_value(student_score) over(partition by student_class order by student_id asc rows between 1 preceding and current row) as front_scorefrom student_score
) as a-- 查询每一个学生的成绩,同时还要获取同一个班级每一个学生和班级最高分的差值。
-- 对于这个案例,窗口的边界是一组中的所有数据,而非一个组中的部分数据。
-- 如果窗口的边界是族中的所有数据,那么我们需要设置窗口的上边界和下边界都是无边界状态
select * ,abs(student_score-(max(student_score) over(partition by student_class rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING)))  as score_diff
from student_score;select * ,last_value(student_score) over(partition by student_class rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING)  as score_diff
from student_score;
相关文章:
实训笔记8.23
8.23笔记 8.23笔记一、Hive中函数1.1 Hive中内置函数1.1.1 数学函数1.1.2 字符串函数1.1.3 日期函数1.1.4 条件函数1.1.5 特殊函数 1.2 Hive的自定义函数1.2.1 自定义UDF1.2.2 自定义UDTF 二、Hive的压缩机制三、数据同步工具Sqoop的安装和使用3.1 sqoop的概念3.2 sqoop的核心功…...
 
2023年菏泽市中职学校技能大赛“网络安全”赛项规程
2023年菏泽市中职学校技能大赛 “网络安全”赛项规程 一、赛项名称 赛项名称:网络安全 赛项所属专业大类:信息技术类 二、竞赛目的 通过竞赛,检验参赛选手对网络、服务器系统等网络空间中各个信息系统的安全防护能力,以及分析…...
 
Android 13 - Media框架(6)- NuPlayer
上一节我们通过 NuPlayerDriver 了解了 NuPlayer 的使用方式,这一节我们一起来学习 NuPlayer 的部分实现细节。 ps:之前用 NuPlayer 播放本地视频很多都无法播放,所以觉得它不太行,这两天重新阅读发现它的功能其实很全面ÿ…...
 
机器学习|DBSCAN 算法的数学原理及代码解析
机器学习|DBSCAN 算法的数学原理及代码解析 引言 聚类是机器学习领域中一项重要的任务,它可以将数据集中相似的样本归为一类。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种是一种经典的密度聚类…...
 
用NUXT.JS,轻松搞定SEO!
nuxt.js 是什么? 如果你正在准备开发一个SEO友好的新项目,而且准备用 vue 开发,那么恭喜你,用 nuxt 是一个成本和效率都比较优秀的方案。 官方文档 知识中心案例 简单介绍下背景,这是一个专门为氚云低代码平台引流…...
什么是电商RPA?电商RPA能解决什么问题?电商RPA实施难点在哪里?
RPA机器人可以应用于各个行业和领域,例如金融、保险、制造、物流、电商等。它可以减少人工错误和重复工作,提高效率和生产力。RPA还可以在处理大量数据时加快处理速度,提供更准确和可靠的结果。此外,RPA还可以为员工提供更有价值的…...
 
【BUG】Docker启动MySQL报错
个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...
 
Spring Boot通过企业邮箱发件被Gmail退回的解决方法
这两天给我们开发的Chrome插件:Youtube中文配音 增加了账户注册和登录功能,其中有一步是邮箱验证,所以这边会在Spring Boot后台给用户的邮箱发个验证信息。如何发邮件在之前的文章教程里就有,这里就不说了,着重说说这两…...
 
Windows使用MobaXterm远程访问ubuntu20.04桌面
参考ubuntu 2020.4 安装vnc 一、脚本文件 remote_setup.sh脚本文件内容: #! /bin/bash #参考链接:https://blog.csdn.net/hailangdeyingzi/article/details/124507304 sudo apt update sudo apt install x11vnc -y sudo x11vnc -storepasswd telpo.12…...
C++注释风格
1. 文件头注释 每个文件都应该开始于一个注释块,描述文件的目的、作者、创建日期和版权信息。 /** FileName: MyClass.cpp* Purpose: Provides functionality for XYZ operations.* Author: [Your Name]* Creation Date: YYYY-MM-DD* Last Updated: YYYY-MM-DD* C…...
Linux 编译内核模块出现--Unknown symbol mcount
文章目录 Linux suse: # cat /etc/os-release NAME"SLES" VERSION"12-SP2" VERSION_ID"12.2" PRETTY_NAME"SUSE Linux Enterprise Server 12 SP2" ID"sles" ANSI_COLOR"0;32" CPE_NAME"cpe:/o:s…...
Pywin32 Cookbook by Eric
Writing Prompt 现在你是一名专业的Python工程师,请你根据"Pywin32_Funtion"函数的功能,为其编写一个清晰的文档说明Functions win32gui.GetWindowDC(hwnd) 描述 win32gui.GetWindowDC()函数用于获取指定窗口的设备上下文(Devi…...
 
indexDB入门到精通
前言 由于开发3D可视化项目经常用到模型,而一个模型通常是几m甚至是几十m的大小对于一般的服务器来讲加载速度真的十分的慢,为了解决这个加载速度的问题,我想到了几个本地存储的。 首先是cookie,cookie肯定是不行的,因为最多以只…...
 
Ubuntu 20.04配置静态ip
ip配置文件 cd /etc/netplan配置 根据需求增加 # Let NetworkManager manage all devices on this system network:version: 2renderer: NetworkManager # 管理 不是必须ethernets:enp4s0: #网卡名dhcp4: no #关闭ipv4动态分配ip地址dhcp6: no #关闭ipv6动态分配…...
 
Tushare入门小册
Tushare入门小册 一、Tushare平台介绍 Pro版数据更稳定质量更好了,我们提供的不再是直接从互联网抓取,而是通过社区的采集和整理存入数据库经过质量控制后再提供给用户。但Pro依然是个开放的,免费的平台,不带任何商业性质和目的…...
 
<c++开发>通信工具 -之-SOME/IP移植部署 第一篇文章
<c开发>通信工具 -之-SOME/IP移植ubuntu部署 第一篇文章 一 前言 SOME/IP (Scalable service-Oriented MiddlewarE over IP) 是一种通信协议,主要用于嵌入式系统和车载网络中的服务导向通信。SOME/IP是AUTOSAR(AUTomotive Open …...
 
权威的软件测试服务供应商分享,怎么获得软件安全检测报告?
我们深知在如今的数字化时代,软件安全对于企业和个人来说具有极其重要的意义。然而,许多用户对于软件安全测试报告的概念还不够清晰,也不知道如何获得这样的报告。在本文中,小编将为您简析什么是安全测试报告以及如何获取这样的报…...
管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——假设——第二节——搭桥假设
文章目录 第二节 假设-分类1-搭桥假设-当题干推理存在明显断点,常见形式比如:“因为A→B,C→D,所以A→D”,则正确选项为“B→C”真题(2014-39)-假设-分类1-题干推理存在明显断点-搭桥假设-建模搭桥-“因为A→B,所以A→C”,搭桥假设为“B→C”真题(2019-44)-假设-分…...
 
百度云BOS云存储的图片如何在访问时,同时进行格式转换、缩放等处理
前言 之前做了一个图片格式转换和压缩的服务,结果太占内存。后来查到在访问图片链接时,支持进行图片压缩和格式转换,本来想着先格式转换、压缩图片再上传到BOS,现在变成了上传后,访问时进行压缩和格式转换。想了想&am…...
go生成文件md5、sha1摘要简单示例
备注 go官方文档 https://pkg.go.dev/crypto/md5 已经给出如何使用该package生成文件或者字节数组的摘要值, 参照即可。 摘要值不是对文内容的加密,它主要用来进行checksum,就是验证两个文件内容是否一致,是否被篡改或者变化了。…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
 
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
 
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
 
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
 
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
 
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...
