- 博客(46)
- 收藏
- 关注
原创 操作系统 - 死锁
死锁是多线程或多进程并发编程中常见的问题,理解死锁的四个必要条件以及如何通过破坏这些条件来避免死锁是非常重要的。通过合理的资源分配策略、锁的顺序获取、超时机制等方法,可以有效地避免死锁的发生,从而提高系统的稳定性和可靠性。
2025-02-09 12:37:44
400
原创 i++是原子操作吗
多个处理器可能会同时从各自的缓存中读取变量,并分别进行操作,在分别写入内存中,想要保证读改写共享变量的操作是原子的,就要使用总线锁来解决,即使用处理器提供的一个LOCK#信号,当有一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞,此时该处理器可以独占共享内存。对于有些处理器不支持缓存锁,就算锁定的内存区域在处理器的缓存行,这时也会调用总线锁。总线锁会把CPU和内存之间的通信锁住,导致其他处理器不能操作其他内存地址的数据,所以总线锁的开销比较大,在某些场合下,会使用缓存锁来代替总线锁进行优化。
2025-02-09 12:04:32
182
原创 K8s学习
Kubernetes1. Kubernetes介绍1.1 应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源容器化部署:与虚拟化
2025-01-18 14:30:11
1360
原创 学习k8s第1天: Kubernetes介绍
kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整服务发现:服务可以通过自动发现的形式找到它所依赖的服务负载均衡。
2023-10-13 18:23:15
138
原创 FLINK RUNNING JOBS METRICS
可以使用Flink内置的指标系统来监视这些源指标,该系统可以将指标导出到各种监视系统,如Prometheus、Grafana或Flink自己的Web仪表板。监视这些指标允许您深入了解Flink作业的数据源的健康状况和性能,有助于解决问题、优化处理,并确保作业满足其性能要求。通过监视这些指标,可以快速检测并解决潜在的问题,以提高作业的性能和稳定性。Flink中的源指标与Flink作业从中消耗数据的数据源相关。这些指标提供了有关数据被摄取的速率、源的状态以及潜在的背压问题的信息。
2023-10-09 21:37:05
337
原创 k8s如何进行调度的
调度是Kubernetes中的一个重要功能,它负责将容器化应用程序部署到集群的节点上,并根据资源需求、节点资源状况和其他策略来决定在哪些节点上运行容器。节点评分:调度器会为每个节点评估其可用资源情况,例如CPU、内存、存储等,并考虑Pod的资源需求、节点的亲和性和反亲和性设置、Pod的硬性和软性约束等因素。选择合适的节点:根据容器的资源需求、节点的可用资源以及其他约束条件,选择一个最优的节点来运行容器。选择最佳节点:调度器根据节点评分选择最佳的节点来运行Pod。评分较高的节点将被优先选择。
2023-07-22 17:19:46
894
原创 Kubernetes - Pod和Deployment关系
Deployment是一种资源对象,用于管理Pod的生命周期,确保应用程序的高可用性和持续运行。因此,可以说Deployment是管理Pod的一种抽象,它将Pod包装在一个更高级别的资源中,以提供更多功能,如滚动更新和回滚,从而简化了应用程序的部署和维护。如果Pod所在的节点发生故障,Pod将会被重新调度到另一个节点,这时Pod的IP地址也会发生变化。在容器编排和管理系统(如Kubernetes)中,"Deployment"和"Pod"是两个重要的概念,它们之间存在一定的关系。
2023-07-22 14:33:35
1672
原创 正则表达式(贪婪匹配与非贪婪匹配,向前向后匹配)
要过滤出其中的域名部分,可以使用正则表达式进行匹配。使用这些正则表达式,你可以过滤出域名部分。这些结果均为过滤出的域名部分,不包含前面的。
2023-07-20 08:36:22
1533
原创 mysql insert replace, insert ignore语法
在MySQL中,当我们使用INSERT语句尝试向一个具有唯一约束(UNIQUE constraint)或主键(PRIMARY KEY)的列中插入数据时,如果发现该数据已经存在,将会触发重复插入错误。使用REPLACE语句可以在发现重复数据时删除已有数据并插入新数据,类似于UPDATE和INSERT的结合。ON DUPLICATE KEY UPDATE语句,可以在发现重复数据时执行更新操作而不是插入新数据。如果不确定数据是否已经存在,且希望插入时不报错,可以选择使用INSERT IGNORE。
2023-07-18 08:46:12
832
原创 spring aop切面编程 - 注解实现
在Java中,AOP(Aspect-Oriented Programming)是一种编程范式,用于在程序的不同部分插入额外的逻辑(称为"切面")以实现横切关注点的分离。AOP的一个常见实现是使用注解来定义切面。元素启用AspectJ自动代理,并将切面类声明为bean。注解表示在目标方法执行前执行切面逻辑。
2023-07-18 08:42:34
362
原创 ThreadPoolTaskScheduler和ThreadPoolTaskExecutor
ThreadPoolTaskScheduler和ThreadPoolTaskExecutor是Spring框架中用于任务调度和线程池管理的类。ThreadPoolTaskScheduler主要用于任务调度,按照时间间隔或Cron表达式执行任务。ThreadPoolTaskExecutor主要用于线程池管理,执行异步任务和多线程任务。
2023-07-14 20:54:44
2687
1
原创 flink 任务错误
flink 任务错误2023-05-11 14:56:55,745 WARN org.apache.flink.streaming.api.operators.AbstractStreamOperator [] - Error while emitting latency marker.这个错误表示Flink作业在发出延迟标记时出现错误,导致运行时异常。
2023-05-11 21:04:06
1056
原创 Flink DataStream任务中 map state(键控状态)过期清理策略
以上三种过期清理策略,可以单独使用,也可以组合使用。一般来说,组合使用定期清理策略+水印策略或OnCreateAndWrite策略可以较好的清理过期状态,防止状态数据无限增长。在Flink DataStream任务中,mapstate(键控状态)需要过期清理策略来清理过期的状态数据,否则状态数据会无限增长。
2023-04-28 13:53:44
923
原创 调度quartz/spring cron表达式 获取之后N次运行时间, 之前N次运行时间
传入参数:cron表达式, 运行次数。传入参数:cron表达式, 运行次数。
2023-03-23 10:58:16
852
原创 【数据治理 - 计算】hadoop mapreduce任务指标采集常用api
【数据治理 - 计算】hadoop mapreduce任务指标采集常用api
2023-02-26 16:21:05
385
原创 spring QuartzJobBean executeInternal 和 org.apache.quartz Job execute区别
spring QuartzJobBean executeInternal 和 org.apache.quartz Job execute区别
2023-02-23 17:25:30
1382
3
原创 linux替换空格、
shell脚本cat word.txt | sed ‘s/[ ][ ]*/,/g’1脚本说明:s代表替换指令;每个[ ]都包含有一个空格;*号代表0个或多个;g代表替换每行的所有匹配;awk取倒数第几列h1=$(echo ls datahtml | awk ‘{ print $(NF-2)}’)h2=$(echo ls datahtml | awk ‘{ print $(NF...
2019-12-31 17:09:17
3088
原创 linux shell获取时间戳,获取日期
shell获取时间戳 1 当前时间戳 date +%s2 两小时前时间戳 date -d -2hour +%s3 1天前时间戳 date -d “1 days ago” +%s日期1 当前时间 date +%s2 两小时前 date -d -2hour +%s3 1天前 date -d “1 days ago” +%s...
2019-12-23 12:09:45
2088
原创 python写redis
python写入redisimport redisimport datetimeclass Database: def __init__(self): self.host = 'localhost' self.port = 6379 self.db = 1 def write(self,website,city,year,mo...
2019-12-17 12:59:40
245
原创 sparksql从hive中查询并且写入到本地文件
____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.0.0 /_/ Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit...
2019-12-06 17:40:36
1369
1
原创 Python写入csv
import osimport sysimport ioimport xlwtdef txt_xls(filename, xlsname): try: f = open(filename, 'r') xls = xlwt.Workbook() # 生成excel的方法,声明excel sheet = xls.add_...
2019-12-05 14:47:29
151
原创 linux 下mysql 安装
在线安装方式:1.验证Centos是否安装MySQL$>yum list installed | grep mysql2.删除MySql$>yum –y remove mysql-libs.X86_64或$>yum erase mysql-libs.x86_643.验证删除是否成功!$>yum list installed | grep mysql4.在线...
2019-10-31 10:22:02
104
原创 2019 阿里巴巴模拟笔试题
题目国内最大的web站点统计服务商CNZZ监测某客户站点正在进行首页广告位更新,该首页有n个广告位,有3种广告(A,B,C) ,A广告占用1个广告位,B广告占用2个广告位; C广告占用3个;广告连在一起,可任意组合,为了保证首页的美观,A广告的左右相邻不能出现A广告,B和C则无限制。问该站点首页有多少种广告位布局方案。输入: n个广告位输出: z种布局方案思路如果n>3时,按照递归来解...
2019-08-26 21:20:30
347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人