- 博客(38)
- 收藏
- 关注
原创 Hadoop项目之——YARN深入学习
不仅仅支持MapReduce程序,理论上支持各种计算程序(spark,Flink).YARN不管你干什么,只关心你要资源,在有的情况下给你,用完还我。就是这个内核的核心部件,它负责将整个集群的资源(主要是CPU和内存)分配给各个应用程序(如MapReduce、Spark、Flink等),可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。,负责程序内部个阶段的资源申请,监督程序的执行情况。YARN中的从角色,一台机器一个,负责。,调度的规则(算法)。
2025-10-11 02:08:59
436
原创 运维面试准备——综合篇(一)
系统调用是应用程序和操作系统内核进行通讯的接口,它主要应用在执行文件操作,进程管理和网络通信方面,例如read(),write(),open(),gitpit(),fork(),exit(),socket()RAID5:使用了带奇偶检验的条带化技术,至少需要3个磁盘,有提高性能和提供数据冗余(数据容错)的作用,但在写这方面性能较低,性能主要提高在读这方面。,用来描述文件的元数据,包括文件的位置,大小,权限,所有者和修改时间(不包括文件名字和文件内容)(deepseek)
2025-10-10 20:47:43
483
原创 算法练习——跳跃游戏II
跳到最后一个位置的最小跳跃数是2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳3步到达数组的最后一个位置。的思想,每次跳跃都选择能到达的最远距离,从而保证用最少的步数覆盖最大的范围。当前跳跃能到达的最远边界(currentEnd)所有可达位置中能跳的最远位置(farthest)向后跳转的最大长度。换句话说,如果你在索引。测试用例保证可以到达。处,你可以跳转到任意。初始位置在下标 0。
2025-09-11 18:23:38
403
原创 算法练习——55.跳跃游戏
在循环内部,判断当前数组下表是否大于能到达的最远距离maxReach,如果大于则说明不能到达目前下标位置,所以也不可能到达最后一个下标,直接返回 false ,而如果当前maxReach大于等于数组最大下标的话,说明目前已经可以到达最后一个下标,可以直接返回 true.但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。
2025-09-10 22:24:32
509
原创 算法练习——122.买股票的最佳实际II
在代码中,定义小价格变量,将数组的第一个值设置为初始小价格,依次遍历数组,当当前价格小于小价格时,更新当前价格为小价格,当当前价格大于小价格时,计算当前上升段利润,将当前上升段利润加到总利润中,然后更新当前值为小价格minprice。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。在每一天,你可以决定是否购买和/或出售股票。
2025-09-02 20:14:45
298
原创 算法练习——121.买股票的最佳时机
首先设置最小价格 minprice 和最大利润 maxprofit 还有利润 profit三个变量,然后对 prices数组进行遍历,先设最小价格为第一个数组元素,从第二个数组元素进行遍历,如果当前数组元素小于最小价格,就将当前元素更新为最小价格,如果当前数组元素大于最小价格,就用当前元素减去最小价格,判断当前利润是否大于最大利润,如果大于就更新当前利润为最大利润,如果小于则直接进入下一循环。如此遍历完整个数组之后,maxprofit就是最大的利润,返回 maxprofit。同时,你不能在买入前卖出股票。
2025-09-02 19:48:28
178
原创 算法练习——189.轮转数组
个位置,首先排除特殊情况,将长度等于一的数组返回,k值大于数组长度时将k值对数组长度取余,然后设置一个长度为k的切片,将当前数组最后面的k 个元素先存入到切片中去,然后将数组前面的 len(nums) - k 个元素依次向后面挪动k个位置,最后将切片中的 k 个元素放入到nums数组的前 k 个位置中,这样就实现了将数组中的元素向右轮转。写一个翻转reverse函数,先整体旋转一次,再将前k个元素翻转一次,最后将后len(nums)个元素翻转一次。题目要求将数组中的元素向右轮转。,将数组中的元素向右轮转。
2025-09-01 21:59:12
395
原创 算法练习——169.多数元素
设置候选人 val 和票数 count ,初始值都是0,遍历数组,判断当前票数count是否为0,若是为0就设置当前数组元素为候选人,判断当前数组元素数值与候选人数值是否相等,相等count加一,不相等就减一。因为多数的值一定占数组中元素数目的一半以上,所以遍历完之后的票数count一定大于一,此时的候选人 val 的数值也一定就是中数。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。
2025-09-01 20:36:40
299
原创 算法练习——80.删除有序数字中的重复项
首先,对数组长度小于等于的情况进行特殊处理,其次,利用快慢指针的思想,设置一个快指针变量 i (未删除重复项之前数组的下标值),慢指针变量 a (表示删除重复项之后数组的下标)将它们两个指针的初始值都设置为2,从数组下标为2的数值开始,让数组中的每个元素于当前位置之前的前两个位置的元素进行比较,如果相等则与前两个数组元素重复,不符合要求,不放入当前数组中,然后对数组下一个元素进行判断;方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。
2025-08-31 21:15:12
439
原创 第七章 使用角色和Asible内容集合简化Playbook
(1).创建角色的方法主要有两种。第一种是使用Linux命令行工具创建新角色所需的所有子目录和文件。第二种是使用ansible-galaxy命令行工具运行ansible-galaxy init 来创建新角色的目录结构。4.如何从Ansible内容集合中获取一组相关角色、补充模块和去其他内容,并在playbook中使用?eg : 一个完整的Web应用部署Playbook可能依次调用。在Playbook 中调用角色又多种方式, 核心是通过。app_deploy(应用部署)四个角色,实现全流程自动化。
2025-08-31 21:03:30
734
原创 Asible——将文件部署到受管主机和管理复杂的Play和Playbook
Ansile使用Jinja2模板系统来修改文件,然后再将文件分发到受管主机Ansible也使用Jinja2在playbook中引用变量Ansible允许在模板中使用Jinja2循环和条件,但playbook中中1.表达式{{ EXPR }}会换成该表达式或变量的结果。也可以使用{% EXPR %}用于特殊的控制结构或逻辑,也可以使用语法括起不应出现在最终文件中的注释。
2025-08-31 21:00:09
1071
原创 Asible管理变量和事实和实施任务控制
1.使用loop关键字添加到任务中,将应对其迭代任务的项目列表取为值,循环变量item保存每个迭代过程中使用的值。此时不使用vars,使用vars_files指令,而后,以YAML格式在文件中定义playbook变量。如果任务失败并且play在该主机中止,则收到play中早前任务通知的处理程序将不会运行。如果您在play中设置。:处理程序会在任务报告changed结果时获得通知,而在任务报告ok或者failed结果时不会获得通知。when 语句只是任务中的又一个键,就如任务的名称及其所使用的模块一样。
2025-08-31 20:52:13
569
原创 介绍Ansible和实施Ansible PlayBook
1. ansible的特点是什么?a. ansible使用yaml语法,语言格式简洁明了。b. ansible不需要代理,仅仅通过SSH远程连接就可以控制受管主机,是一种非常便捷、安全的方法。c. Ansible的功能强大,可以利用ansible部署应用进行配置管理、工作流自动化和网络化,ansible可以编排应用的整个生命周期。d. Ansible具有幂等性,同一模块的多次执行结果相同,避免了重复操作带来的意外问题。2. 说出你对于ansible的认识。
2025-08-31 20:46:10
691
原创 算法练习——26.删除有序数组中的重复项(golang)
然后将数组中的元素与变量t依次对比,对比结果不同的元素赋值为不重复数组的最新值,并且更新t的值,并且将下标a自增1作为当前不重复数组的最新下标。最后返回a+1的值即为新数组的个数。// 长度正确的期望答案。定义变量t作为新的不重复数组的最新有效值。如果所有断言都通过,那么您的题解将被。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。作为不重复数组的下标,
2025-08-26 22:23:28
344
原创 算法练习——27.移除元素(golang)
解题思路:定义变量t,既是新数组的下标,也是数组中与val变量不相同的数目,然后使用for循环,判断数组每个位置上的数值是否与val相等,不相等就将此值赋给t下标的数组,并且t自增,相等则t不自增,循环结束后t值就是题目中需要返回的值。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。// 排序 nums 的前 k 个元素。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。
2025-08-26 21:30:44
369
原创 算法练习——88.合并两个有序数组
题目:给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你nums2到nums1中,使合并后的数组同样按排列。最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。需要合并 [1,2,3] 和 [2,5,6]。合并结果是 [,2,,5,6] ,其中斜体加粗标注的为 nums1 中的元素。[1]
2025-08-25 18:06:40
278
原创 Linux复习之访问命令行
4.head和tail命令可以显示文件的头部和尾部,加-n选项可以指定行数。5.wc命令可以计算文本中的行,字和字符的数量,分别使用-l,-w,-c.3.less命令可以显示长文件,一次显示一个页面,可以上下滚动。2.cat命令可以查看文件内容,将文件内容重定向到终端显示。6.history命令可以显示历史命令,带有命令号作为前缀。8.Esc+.可以赋值上一个命令的组后一个参数。1.file命令查看文件的基本属性。一、基本的命令及其作用。
2025-07-23 13:36:31
166
原创 Ansible角色知识理解汇总(笔记)
例如,若有多台 Web 服务器需要部署相同的 Nginx 环境及相关配置,可将 Nginx 安装、配置等操作封装成一个角色,在不同服务器上调用,避免重复编写 Playbook 代码。如红帽企业Linux的rhel - system - roles软件包,包含了用于配置系统组件(如时间同步、网络、防火墙等)的角色。这是官方的角色共享平台,社区用户贡献大量角色。使用`ansible - galaxy`命令结合角色要求文件(指定角色源地址、版本等信息)从自定义仓库下载安装角色,实现内部复用和共享。
2025-07-07 13:45:48
611
原创 Linux——使用tar对文件进行归档和传输(笔记)
tar使用程序是用于创建,管理和提取存档的常用命令。使用tar命令可将多个文件收集到一个存档文件中。tar存档是文件元数据和数据的结构化序列,带有方便提取各个文件的索引。执行tar操作需要以下命令之一-c或--create:创建文件-t或--list:列出存档的内容-x或--extract:提取存档常用的tar选项-v或--verbose:显示在tar操作期间的详细过程-f或--file:在此选项后面加上要创建或打开的文档名。
2024-11-29 11:36:03
425
原创 Linux——从命令行配置网络
这是一条使用nmcli(NetworkManager 命令行工具)在 Linux 系统中添加网络连接配置的命令,目的是创建一个名为的静态网络连接,绑定到网络接口 eth0上,并设置相关的 IPv4 配置信息,包括手动指定IP 地址、子网掩码、默认网关以及 DNS 服务器地址。ping。
2024-11-21 20:15:24
2854
1
原创 Linux——命令行文件的管理(创建,复制,删除,移动文件,硬链接与软链接)
inode也会消耗硬盘空间,因此,磁盘格式化的时候分为了两个区域,inode区域和数据区域,通过对inode区域的访问我们可以知道文件存储在磁盘上的那个位置,进而知道文件的具体内容(可以将索引节点比作一本书的目录,我们可以根据目录知道文件的基本信息,并找到文件在书中的具体位置进而阅读到文件的具体内容)软链接就相当于一个快捷键,它会创建一个新的索引节点,单独占据一块磁盘区域,新创建的软链接所存储的内容其实是你要访问的源文件的路径,因此新创建的软链接指向的文件内容为要访问的文件内容。文件的内容保持不变。
2024-08-31 16:20:45
2304
原创 Linux——文件系统层次结构,绝对路径
cd命令可以更改shell的当前工作目录,如果没有为该命令指定任何参数,将自动切换到当前的主目录,cd - 命令可以更改到到用户在进入当前目录之前所处的目录,cd ..命令上移一个级别,进入其父目录(不用知道父目录的名称)linux中所有文件存储在文件系统中,文件系统层次结构可以类比为一颗到立的树,最顶层为根目录/,根目录/底又分了/etc,/bin,/boot,/dev等子目录,而这些子目录底下又可以生成子目录分支。Ls命令列出指定目录的目录内容,如果未指定目录,则列出当前工作目录的内容。
2024-08-25 01:32:02
687
原创 Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)
useradd username命令用于创建一个名为username用户的账号,系统创建用户的同时也设置了用户的主目录和账户信息,同时也为用户创建了一个私有组(当用户创建文件时,文件必须有所属用户和所属组,系统会将用户的私有组作为创建文件的所属组),但此时用户未设置密码,只有设置密码后用户才可以登录其账号。userdel username命令意为从/etc/passwd文件中删除用户账号,但用户的主目录仍在,userdel -r username命令可以在删除用户账户的同时删除用户的主目录。
2024-07-25 11:59:02
2298
原创 LeetCode-----删除有序数组中的重复项II&&回文链表
当看到题目时,我们可以想到用链表的知识判断回文数会非常的复杂,可以想到转化成数组的方法进行判断,首先遍历链表算出结点的数目,由此可以确定数组的长度,再次遍历链表,将节点中的值传到数组中,接下来就是数组判断回文数的题目了,我们利用双指针(对撞指针)的知识,创建头指针和尾指针分别指向数组的头和尾,循环判断它们是否相等,相等就将头指针向后移动一位,尾指针向前移动一位,不相等就直接返回false,当可以跳出循环时,说明该链表是回文链表,返回true.// 根据你的函数返回的长度, 它会打印出数组中。
2024-04-14 11:55:43
963
1
原创 LeetCode----只出现一次的数字&&
首先创建一个整型t,用来记录在第一次循环中当前数据在数组中出现的次数,如果t=1,说明数组中该数据只出现过一次,返回当前数据.,除了某个元素只出现一次以外,其余每个元素均出现两次。在移动零函数中,设置两个快慢函数,当快指针指向的数不为零时,交换此时快慢指针所指的值。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。首先写一个交换函数,方便交换移动零函数中快慢指针指向的数据的交换位置。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。
2024-04-13 00:44:13
395
1
原创 LeetCode螺旋矩阵II&&将所有数字用字符替换
首先为将要返回的矩阵分配内存空间,*returnColumnSize返回生成矩阵每一列的大小,为每一行数组申请空间,在循环中为每一列数组申请空间并赋值每一列的元素数目。其次思考在螺旋矩阵的实现过程中每次循环的条件(也就是寻找规律,找出每一圈循环过程中的不变量),可以思考出每一圈的四个方向的赋值过程中,每个方向的元素数目都应该相同。首先求出字符串的长度len,得到循环的终止条件,在循环中,判断当前字符下标是否为奇数,若为奇数则将上一个字符加上当前字符的值重新赋值给当前字符的位置。下标处为小写英文字母,
2024-04-10 21:41:50
866
1
原创 LeetCode——比较含退格的字符串&&二分查找
首先设置数组最左边元素下标为left,最右边下标元素为right,当最左边下标小于等于最右边下标时进入循环,找出当前left和right的中间值mid,判断数组下标为mid的元素与目标元素是否相等,相等则返回mid,小于则将mid+1赋值给left,改变查找范围的左边界,大于则将mid-1的值赋值给right,改变查找的右边界,继续进行查找。从数组中第一个元素开始逐个判断,若与目标值相等则直接返回当前元素的数组下标,当数组循环完毕跳出循环时,说明数组中无目标元素,返回-1.s 和 t 都会变成 "ac"。
2024-04-09 21:52:33
980
1
原创 LeetCode——找出字符串中第一个匹配的下标&&搜索插入位置
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。0"sad" 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。-1"leeto" 没有在 "leetcode" 中出现,所以返回 -1。needle。
2024-04-08 20:10:12
551
原创 LeetCode——删除有序数组中的重复项&&移除元素
运用双指针的思想,创建p,q指针,令p指针指向数组第一个元素,q指针指向数组第二个元素,当p指针指向的元素与q指针指向的元素不相等时,在内循环中,将q指针指向的元素赋值给p指针后面的元素,接着将p指针向后移动一位,出了内循环后将q指针向后移动一位。首先创建一个整形变量x,并赋值0,在循环中判断当前数组中的元素是否与val相等,若不相等则让x的当前位置(nums[x])赋值数组中此刻判断的元素(nums[i]),然后移动数组当前元素,若不相等也移动数组当前元素。你不需要考虑数组中超出新长度后面的元素。
2024-04-07 23:33:35
1993
原创 移动应用开发实验室第三次纳新面试题分析
给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。s = "()"truetrues = "(]"false'()[]{}'1.建立哈希表2.利用栈的算法思想1.建立哈希表,实现当输入右括号时返回对应的左括号。2.判断传入的数组长度是否为奇数,如果为奇数则直接返回false.
2024-04-07 19:02:35
1592
原创 LeetCode——反转链表&&相交链表
给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例 1:示例 2:[2,1]示例 3:head = [][]链表中节点的数目范围是[0, 5000]给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。
2024-04-06 19:39:38
2344
1
原创 LeetCode——环形链表&&对链表进行插入排序
3.开始遍历时将第一个数据p当作已经排序好的数据,从第二个数据q进行判断,当p结点中的数据小于q结点中的数据时,p,q都向后移动一位,开始下一次判断。(插入排序的特点),也就是q与m->next结点中的数据进行比较,若m->next中数据大于q中 的数据,则将q结点插入到m->next结点之前,1.分析题目,可以想到,如果当前链表为环形链表时,快慢指针必定相遇,此时,快慢指针所指向的结点相等(这也是我们循环终止的条件)。2.首先,我们需判断头节点以及头节点的下一节点是否为空,否则直接定义快指针将编译出错。
2024-04-05 22:21:03
485
1
原创 LeetCode——罗马数字转换整数&&
对a[0],a[1]进行初始化1,并对1进特判。从数组a[2]开始就可以利用循环对前两个数字相加得出结果了。首先看到这道题我思考的是如何将罗马数字用阿拉伯数字表示,然后我运用switch.case的方式,使用了for循环对每个字母进行判断并相加,并且思考了4,9,400,900等特殊数字的输出,发现罗马数字的大小是从左到右每个字母所表示的数字加起来的,在无特殊数字(4,9,40,90)的情况下,每个字母所表示的数字都是左边的大于右边的,当当前数字大于下一位数字时,对当前数字相加,小于时则相减。
2024-04-03 23:57:33
371
1
原创 洛谷——P1217回文质数
在主函数中,先判断第一个输入的数是否为奇数,因为偶数绝对不会是质数(2除外),如果不是就加1,再由于回文数的数量少于质数的数量,所以首先判断是否为回文数,再判断是否为质数。在huiwen函数建立一个整形t,t为原数字n反转后的数字,反转完成后判断t和原数字n是否相等,相等则为回文数,返回1,否则返回0。在本题中,首先写两个判断是否为质数和是否为回文数的函数。
2024-04-02 22:31:57
277
1
原创 【无标题】洛谷——p1211选举学生会
在本题中,我创建了两个数组a[m]和b[n+1](因为n名候选人的编号是从1开始,数组下标第一位是0,所以数组b中有n+1个元素,在完成对数据基本的输入后,首先对数组b进行初始化0,以便接下来运用桶排序的思想对每位候选人的票数进行统计。接下来对所有票数(m)进行遍历(桶排序思想)最后对n个候选人的票数进行输出。
2024-04-02 21:53:50
348
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅