- 博客(66)
- 收藏
- 关注
原创 从0到1搭建flink程序-WordCount(图文/详细/mac)
上述代码使用 DataStream API 构建了一个 Flink 应用,数据源(source)为本地的 socket 端口(端口可以自己改代码,我这里是9888),经过 flatMap、keyBy、sum 三个转换操作之后,最后打印到标准输出流。生成文件会在/quickstart/target下,打开terminal,在最一开始quickstart目录下执行,运行flink任务。3、修改DataStreamJob.java,可以用idea,可以用vi,随便,文件内容复制粘贴如下。
2024-11-01 14:52:44
981
2
原创 Host文件及switchhosts for mac下载
hosts 是一个文本文件,用来将主机名或域名映射到对应的 IP 地址。这个文件通常位于/etc/hosts(在 Unix-like 系统上,包括 macOS 和 Linux)可以在终端输入sudo vim /etc/hosts来打开或(在 Windows 上)。
2024-09-26 14:13:15
860
原创 Golang死锁vs操作系统死锁
4.当 ch 中没有数据的时候,就是从空的channel中接受数据,for range ch 会发生阻塞,但是无法解除阻塞,发生死锁。发生死锁时,线程永远不能完成,系统资源被阻碍使用,以致于阻止了其他作业开始执行。在讨论处理死锁问题的各种方法之前,我们首先深入讨论一下死锁特点。golang中的锁是不可重入锁,对已经上了锁的写锁,再次申请锁是会报死锁。上了读锁的锁,再次申请写锁会报死锁,而申请读锁不会报错。3.channel 缓冲区满了的,继续发送数据会阻塞。解决办法:读取channel中的数据。
2024-08-04 23:16:29
1138
1
原创 MongoDB下载与基本使用(mac图文详解)
MongoDB下载与基本使用(mac),我电脑装好了brew,所以选择的终端执行指令下载,建议大家多看看指令安装过程中的提示,很详细。2.提示的很清晰,去网站创建账,然后把终端验证码贴到网页里,帮助你创建。3.终端提示的指令进行连接。
2024-07-30 11:18:29
1564
1
原创 Flink入门(更新中)
1.图片介绍低延迟高吞吐内存计算弹性实施部署机制高可用配置保存点恢复机制exactly-once 状态一致性事件时间处理专业的迟到数据处理2.对比mapreduce相似性都是大数据处理框架,都提供了一套编程模型和API,使得开发人员能处理大规模数据集。分布式处理:都支持分布式处理,即数据可以在多个节点上并行处理。在MapReduce中,作业被拆分成多个map任务和reduce任务,这些任务在集群的多个节点上并行执行。
2024-07-23 17:46:38
1184
1
原创 单例模式_Golang
一个类只能生成一个实例,且该类能自行创建这个实例的一种模式,这个定义个人感觉可以拆的通俗一些,在项目的生命周期内,一个类生成的一个实例对象只能存在一个,调用时复用该单例对象即可,这样既节省了内存空间,也节省了创建新对象时的资源消耗,也便于资源管理.:在应用程序中,如果某些配置信息只需要读取一次,那么可以将这些配置信息的加载逻辑放在单例类中,确保配置信息只被加载一次,提高了性能和效率。,如数据库连接池、线程池等,单例模式可以确保这些对象的创建和管理更加高效。系统中只需要存在一个共享的资源。
2024-07-21 22:13:25
503
原创 Golang_交替打印ABC\奇偶数\1-10\字母(并发编程)
建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。
2024-07-21 20:45:06
515
原创 为什么不建议使用外键,硬删除(数据库)
当接触实际生产问题时,发现数据库基本都不会使用外键,实际生产还添加 is_deleted 字段把所有关联的行修改以实现软删除,而不会真正删除数据,因为现实世界中并不会级联删除。那么这意味着一点,数据库的性能开销变大了,每次更新数据,都需要额外的检查另外一张表的数据,容易造成死锁。自己做数据库玩才会删除数据,否则实际生产接触到的基本都是软删,总而言之,要看业务需求,且软删利大于弊。:软删除还可以保留数据的历史记录,即使数据被删除,其历史记录依然可以保留。:避免数据的物理删除,使得数据的恢复成为可能。
2024-07-16 16:25:09
493
1
原创 SQL常见用法总结(侧重查询)
LIMIT:LIMIT用来指定返回记录的个数,在SQL Server中语法是SELECT TOP,在MySQL是LIMIT,可以用offset。Delete用来删除表格中已经存在的记录,注意where条件,如果漏掉where会删除所有记录。右连接RIGHT (OUTER) JOIN:返回右表中的所有记录以及左表中匹配的记录。左连接LEFT (OUTER) JOIN:返回左表中的所有记录以及右表中匹配的记录。Min()返回选择列的最小值,max()返回选择列的最大值。inner join和join是相同的。
2024-07-02 20:06:37
2830
原创 数据库索引(未整理)
建议使用自增ID去插入,因为每次插入可以直接加进去,如果不用自增,为了保证有序,还需要遍历链表进行插入,3层b➕树存满,数据量很大的,两层B➕树比较好,四层不好:树的高度居定了查询时所需的磁盘I/O次数,因为磁盘I/O操作通常是按页(磁盘块)进行的,主键索引(也叫做聚集索引)生成B+树,非聚簇索引,没有聚簇索引,叶子结点辅助索引存的是地址,全表扫描,大数据排序,有优势,因为索引所需空间小,索引是索引,数据是数据,如果要捞到内存里,还是my as 好一些,占用内存小一些。
2024-06-28 18:43:02
392
原创 生成随机函数f3,利用f3生成f18(python)字节面试题
给定一个完全随机函数f3。能够完全随机产生1~3之间任意一个自然数。现在要构造一个f18,让其能随机产生1~18之间任意一个自然数,要求写出f18的函数,另外要测试是否符合预期,f18要用f3。
2024-06-27 11:26:14
299
原创 如何设计分布式系统
BASE理论是对CAP中的一致性和可用性进行权衡的结果,核心思想是:无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。增加节点或增加节点的资源来扩展系统的容量和性能,通常需要处理大量的数据和请求,需要具备可扩展性来应对不断增长的负载。由于多个节点可以同时访问和修改数据,多个节点之间保持数据的正确性和一致性。由于需要在公共网络上传输并处理数据,保障系统和数据的保密性、完整性、可用性和认证性的能力,需要定期评估和更新安全策略。
2024-06-25 16:14:05
1467
原创 Raft算法——学习笔记
Raft 算法要解决的问题,以及算法机制,通过项目理解如何实现raft算法。项目:深入理解 Raft 算法,深刻理解分布式环境下数据强一致性该如何实现。
2024-06-21 23:07:19
1119
1
原创 Redis总结(未整理)
Redis是什么?开源的基于内存的数据存储系统,用作数据库缓存、消息队列等。NoSQL随用户访问量增大,MySQL的磁盘IO读写速度太慢了,所以用Redis把数据放在内存里,优势性能极高丰富所有语言数据持久化主从复制哨兵模式高可用确保Redis和MySQL之间的数据一致性代码中同时对MySQL和Redis进行更新,通常先更新MySQL,然后更新Redis。异步更新先更新MySQL,然后发送消息到队列,由消费者处理并更新Redis。定时任务同步使用MySQL的binlog。
2024-06-19 18:24:25
568
原创 摩尔投票法——代码实现及注释(力扣169题:找出列表中多数元素)
x 时,票数 candidate 减 1。candidate = 2, count = 0 + 1 = 1(由于前面已经抵消掉count = 0,重新选一个候选数2)candidate = 3, count = 1 - 1 = 0 (扫描到了和当前候选3不一样的数字2,所以要减去1)candidate = 1, count = 1 - 1 = 0 (扫描到了和当前候选1不一样的数字2,所以要减去1)(2)假设nums = [1,2,3,2,2,2,5,4,2],要求返回其中的多数元素。
2024-05-28 11:40:26
1095
1
原创 linux之sed编辑器指令练习
如果有大量要处理的sed命令,把sed命令放在一个文件里更方便,然后使用-f选项指定文件,创建一个如下的sed命令文件,最好文件名用sed结尾,否则很容易和shell脚本搞混。也就是使用了红色框里面的两个s替换命令,可以看到文件内容已经发生黄色标注的变化。使用sed指令,其中s命令会用斜线间第二个文本字符串来替换第一个文本字符串,sed编辑器并不会修改文件,只会将修改后的数据,输出。这里我们看到文件的内容并没有修改,是因为开篇我们提到,,可以看到文件内容已经发生黄色标注的变化。
2024-03-22 20:14:38
576
原创 队列的基本操作——常见队列的对比分析(c语言完整代码包含注释)
总的来说,循环队列带头和不带头在判满和判空上的逻辑是相同的,都是根据指针的位置关系来判断队列状态;而引入头结点的主要作用是简化队列为空和队列满的判断逻辑,使队列操作更加灵活高效。
2024-02-23 22:08:19
1377
1
原创 python——sort排序和sorted排序比较
想使用排序的函数将nums排序的结果给nums1,并不想改变nums本身,可是结果nums1为空,nums也发生了变化。
2024-02-18 16:59:24
639
原创 python解构赋值详解(包含leetcode226.翻转二叉树题目讲解以及python代码)
解构赋值(destructuring assignment):它可以将多个变量同时赋值给多个值,而无需使用额外的临时变量。
2024-02-16 21:31:15
1200
原创 双链表的创建,按需删除等操作(可运行c语言源代码)
单链表结点中只有一个指向其后继的指针,使得单链表只能从头结点依次顺序地向后遍历。要访问某个结点的前驱结点(插入、删除操作时),只能从头开始遍历,访问后继结点的时间复杂度o(1),访问前驱结点的时间复杂度为 o(n)。为了克服单链表的上述缺点,引入了双链表,双链表结点中有两个指针 prior 和 next,分别指向其前驱结点和后继结点,
2024-02-16 12:37:24
571
原创 数据结构——排序算法代码实现、包含注释易理解可运行(C语言,持续更新中~~)
数据结构——排序算法代码实现、包含注释易理解可运行(C语言),依次进行算法思想,优缺点,和排序过程演示,以及代码实现。插入排序的核心操作是将待排序元素与已排序序列中的元素进行比较,并找到合适的位置进行插入。这个过程可以通过不断地将元素向右移动来实现。插入排序的优势在于对于小规模或基本有序的数组,它的性能非常好。然而,对于大规模乱序的数组,插入排序的性能相对较差,时间复杂度为 O(n^2)。
2024-01-24 22:28:15
911
原创 UTC时间是什么以及时间转换指令
UTC(Coordinated Universal Time)是一种全球标准的时间标准,用于协调世界各地的时间。它是以原子钟为基础,通过国际原子时(International Atomic Time)进行精确测量和保持。
2023-09-21 17:33:19
5160
原创 学习率Learn_rate是什么(深度学习)
较高的学习率可能会导致模型跳过全局最优解并陷入局部最优解,而较低的学习率可能需要更多的迭代才能达到全局最优解。收敛速度:较高的学习率可以加快模型的收敛速度,因为参数更新更大,模型能够更快地找到损失函数的最小值。较低的学习率通常会使模型在训练期间更加稳定,但可能需要更多的迭代次数才能达到较好的性能。选择合适的学习率是深度学习中一个重要的超参数调整问题,需要通过实验和验证来找到最佳的学习率,以便在训练过程中获得最佳的模型性能。学习率的选择直接关系到模型的性能和训练过程的效果。
2023-08-03 10:54:06
1934
原创 评分函数和损失函数是什么(知识图谱嵌入KGE)
评分函数用于衡量实体和关系之间的相似度或相关程度。损失函数用于训练模型,指导模型优化参数以更好地拟合数据。
2023-08-02 19:53:06
1065
原创 浅析深拷贝和浅拷贝(python和go的切片)
浅拷贝(Shallow Copy)和深拷贝(Deep Copy)是关于对象或数据结构复制的两个概念。1.1浅拷贝浅拷贝是指在将一个对象复制到另一个对象时,只复制对象的引用而不复制其内容。这意味着复制后的对象与原始对象共享相同的内存空间,对其中一个对象的修改会影响到另一个对象。浅拷贝一般适用于简单的数据类型,如基本类型的变量、数组等。1.2深拷贝深拷贝是指在将一个对象复制到另一个对象时,复制对象的内容及其引用。这意味着复制后的对象与原始对象完全独立,修改其中一个对象不会影响到另一个对象。深拷贝
2023-07-15 15:57:04
938
原创 python实现二叉树层次遍历
这段代码的思想是:首先将根节点入队列,在每次循环中,记录当前层的节点个数,然后依次弹出队列中的节点,并将其值添加到当前层的列表。如果节点存在左孩子,将左孩子入队列;如果节点存在右孩子,将右孩子入队列。最后,将当前层的结果添加到结果列表中,并重复此过程直到队列为空。
2023-07-05 21:27:44
1940
2
原创 使用vim编辑器,进行保存时报错:E382: Cannot write, ‘buftype‘ option is set
使用vim编辑器,进行保存时报错:E382: Cannot write, 'buftype' option is set,包含解决办法
2023-07-02 13:49:00
1343
原创 知识图谱嵌入表示实战——基于TransE、Pytorch的知识图谱嵌入项目(源代码和运行实例)
知识图谱常用的嵌入方法主要有TransE、TransH、TransR、RESCAL、DistMult、ComplEx、RotatE、SimplE和TuckER等。项目步骤:1. 定义DBPDataset类表示数据集,重写__getitem__方法返回三元组。2. 定义KGEmb模型表示知识图谱Embedding,包含实体与关系Embedding层。3. 构建DataLoader加载数据集,定义优化器与TransE损失函数进行训练。4. 训练结束后,ent_emb与rel_emb分别为实体与关系Embe
2023-05-31 19:19:53
9711
14
原创 训练集、验证集和测试集分别是用来做什么
1.训练集:用于模型训练,提供输入特征和目标,使模型可以学习到特征与目标之间的映射关系。训练集要尽可能大,能涵盖输入和输出的全部范围。2. 验证集:用于验证模型在训练过程中的效果,并用来调整模型超参数。验证集和训练集应来自相同的数据分布,但必须是训练集之外的数据样本。验证集的大小通常为训练数据集的10-30%。3. 测试集:用于评估模型的最终性能,测试集必须是模型训练过程中未曾使用过的数据。测试集也应来自相同的数据分布,其大小也为训练集的10-30%。
2023-05-26 18:42:13
6046
辽宁大学研究生课程java期末复习总结加历年常考期末题包含答案附带23期末考试题(王青松主讲)
2023-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人