avatar
文章
218
标签
10
分类
10
首页
归档
标签
分类
关于
Logo技术博客
搜索
首页
归档
标签
分类
关于

技术博客

解密 Flink 核心:为何有些算子带 UDF,有些却不带?
发表于2025-08-02|大数据|大数据
如果你是一位 Flink 开发者,你一定对这样的代码非常熟悉:我们使用 .map() 来转换数据,用 .filter() 来过滤,同时又用 .keyBy() 来分区。你是否曾停下来思考过:为什么像 map 和 filter 这样的操作需要我们传入一个函数,而像 keyBy 和 shuffle 这样的操作却不需要? 这个看似微小差异的背后,其实隐藏了 Flink 框架设计的核心理念之一。理解这一点,能帮助我们更深刻地把握 Flink 的工作原理。今天,就让我们一起来揭开这个谜底,探索 Flink 中那个无处不在却又至关重要的概念——UDF。 一、UDF 是什么?Flink 的“可编程插件”UDF 是 User-Defined Function(用户自定义函数) 的缩写。 想象一下 Flink 是一个功能强大的全自动厨房。它提供了顶级的厨具和食材处理流水线(数据流),但它并不知道你今天想做什么菜。你想把土豆切成丝(map 操作),还是想挑出不新鲜的蔬菜(filter 操作)? 这些具体的“菜谱”和“处理指令”,就是通过 UDF 来告诉 Flink 的。UDF...
根治 Git 常见报错:掌握这些核心配置,让开发更顺畅!
发表于2025-08-02|杂货小铺|杂货小铺
作为后端开发人员,或者任何与代码版本控制打交道的人,Git 绝对是我们日常工作中不可或缺的工具。然而,你是否也曾遇到过一些令人抓狂的 Git 报错,比如文件路径过长、中文文件名乱码。这些“小问题”往往看似不起眼,却可能在我们辛辛苦苦的开发过程中投下令人沮丧的阴影。 今天,我就来分享几个我个人在实际工作中总结并使用的 Git 核心配置,它们就像是“魔术开关”,能帮你解决一些常见的痛点,让你的 Git 使用体验更加顺畅。 注意: 文中提到的某些配置涉及系统底层行为,请在理解其作用的基础上谨慎使用,特别是第一个 core.protectNTFS false,它可能降低某些文件系统的安全性。 Git 常用配置汇总 (可直接复制粘贴到终端执行)为了方便大家快速应用这些配置,我将所有命令汇总如下。你可以根据自己的需求,选择性地复制粘贴到你的 Git Bash 或 WSL 终端中执行即可。--global 选项表示这些配置将应用于你当前用户的所有 Git 仓库。 12345678# 禁用对 NTFS 保护性限制(谨慎使用,可能降低文件系统安全性)git config --global...
Centos部署Hexo个人博客实战指南
发表于2025-08-01|环境搭建|环境搭建
笔者一直以来都习惯于在稀土掘金平台进行技术博文的分享和记录。掘金作为一个独立运营的第三方平台,确实提供了优质的技术交流环境和丰富的资源,对技术人来说是一片很好的内容创作天地。然而,随着使用时间的增加,笔者开始意识到自己在数据安全方面的隐患以及平台依赖的问题。 首先,掘金目前并没有提供历史文章的导出功能,这意味着用户的所有创作内容都被深深绑定在平台之上,一旦平台无法正常运行或出现类似删库跑路这样的极端情况,用户可能就会面临失去所有文章的风险。此外,如果管理员误删数据、服务器故障导致数据丢失等问题出现,则笔者之前所有的心血可能会付之东流。这种“不受控制”的内容存储方式让我感到缺乏安全感和预见性。 因此,笔者回忆起自己之前曾研究过的个人博客搭建方式,并决定重新捡起基于 Hexo 的博客搭建工具,来构建一个完全属于自己的内容创作和存储空间。在拥有个人博客的基础上,不仅可以保持创作自由,同时也能确保数据的安全和持久性。接下来,本文将详细记录 Hexo 博客的搭建过程,希望对有相同需求的朋友有所帮助。 环境推荐 本地环境:Windows11 服务器环境:RockyLinux...
Nginx 开启 HTTPS:SSL 证书配置指南
发表于2025-07-28|运维手册|运维手册
在当今的互联网环境中,为你的网站启用 HTTPS 不再是“可选项”,而是“必选项”。HTTPS 不仅能保障数据传输安全、防止内容被篡改,还能提升用户信任度和搜索引擎排名。本文将为你提供一份清晰、精简的 Nginx 配置 SSL 证书的操作指南,让你能快速为自己的网站部署 HTTPS。 准备工作在开始配置之前,请确保你已准备好以下内容: 一台已安装 Nginx 的服务器:本文所有操作基于 Nginx。 一个域名:例如 your_domain.com,并已解析到你的服务器 IP。 SSL 证书文件: 证书文件(通常是 .pem 或 .crt 格式),这是公钥证书。 私钥文件(通常是 .key 格式),请务必妥善保管此文件。 你可以从 Let’s Encrypt 获取免费证书,或从其他商业证书颁发机构(CA)购买。 操作步骤第一步:上传证书文件到服务器为了方便管理,我们建议将证书和私钥文件存放在一个统一的目录中。一个常见的做法是在 Nginx 配置目录下创建一个 ssl 文件夹。 12345678910# 创建 SSL 证书存放目录sudo mkdir -p...
修复Nginx请求体临时文件Permission denied错误指南
发表于2025-07-26|运维手册|运维手册
问题背景在Nginx错误日志中发现如下关键报错: 12025/07/26 18:18:10 [crit] 3257334#0: *183982 open() "/var/lib/nginx/tmp/client_body/0000000301" failed (13: Permission denied) 此错误表明Nginx进程在尝试处理POST请求(本例中为/graphql)时,因权限不足无法在/var/lib/nginx/tmp/client_body/目录创建临时文件。 原因分析 临时文件写入机制: 当客户端提交较大请求体(如图片上传、API调用)时,Nginx会先将数据写入client_body_temp_path指定的临时目录 默认路径通常为/var/lib/nginx/tmp/client_body/ 权限问题根源: Nginx工作进程(通常以nginx或www-data用户运行)对目标目录缺乏写权限 目录所有权配置错误(如属主为root) SELinux/AppArmor安全策略限制 解决方案✅...
LeetCode42-接雨水
发表于2025-07-21|算法|算法
题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2: 输入:height = [4,2,0,3,2,5] 输出:9 提示: n == height.length 1 <= n <= 2 * 104 0 <= height[i] <= 105 分析题目要求我们计算一个由非负整数数组表示的高度图能接多少雨水。我们可以把数组的每个元素想象成一个宽度为 1 的柱子。 要计算能接多少雨水,关键在于找出每个位置上方能够蓄水的高度。对于数组中的任意一个位置 i,其上方能蓄水的高度取决于它左边的最高柱子和右边的最高柱子中较矮的那个。 我们用 max_left[i] 表示位置 i 左边(包括 i)的最高柱子高度,用 max_right[i] 表示位置 i...
LeetCode15-三数之和
发表于2025-07-20|算法|算法
题目给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 解释: 123nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。 不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。 注意,输出的顺序和三元组的顺序并不重要。 示例 2: 输入:nums = [0,1,1] 输出:[] 解释:唯一可能的三元组和不为 0 。 示例...
LeetCode11-盛最多水的容器
发表于2025-07-19|算法|算法
题目给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例 2: 输入:height = [1,1] 输出:1 提示 n == height.length 2 <= n <= 105 0 <= height[i] <= 104 分析1. 理解问题题目的目标是,在给定的代表垂直线高度的数组 height 中,找出两条线,使其与 x 轴共同构成的容器能容纳的水量最大。 容器的容量由两个因素决定: 宽度 (width):两条线在 x 轴上的距离,即它们索引的差 j - i。 高度...
LeetCode283-移动零
发表于2025-07-19|算法|算法
题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] 输出: [0] 提示: 1 <= nums.length <= 104 -231 <= nums[i] <= 231 - 1 进阶:你能尽量减少完成的操作次数吗? 分析问题描述给定一个数组 nums,你需要编写一个函数,将数组中的所有 0 元素移动到数组的末尾。这个过程必须满足两个条件: 非零元素的相对顺序必须保持不变。 必须在原数组上直接进行修改(原地操作),不能创建新的数组副本。 解题思路分析这道题的核心在于如何在移动 0 的同时,不打乱其他非零元素的原始顺序。一个直观但错误的想法是遍历数组,每当遇到一个 0,就将它与数组末尾的元素交换。这种方法的问题在于,无法保证非零元素的相对顺序。例如,[0, 1, 0, 3, 12],如果将第一个 0 与...
LeetCode128-最长连续序列
发表于2025-07-19|算法|算法
题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 示例 2: 输入:nums = [0,3,7,2,5,8,4,6,0,1] 输出:9 示例 3: 输入:nums = [1,0,1,2] 输出:3 提示: 0 <= nums.length <= 105 -109 <= nums[i] <= 109 分析1. 初步思考与暴力解法最直观的想法是,对于数组中的每一个数 x,我们都去尝试寻找 x+1, x+2, x+3, … 是否存在于数组中,直到找不到为止,以此来确定以 x 开头的连续序列的长度。然后我们遍历所有数字,找出最长的那个长度。 这个方法需要两层循环:外层循环遍历每个数字 x,内层循环则去数组中查找 x+1, x+2 等。在未排序的数组中查找一个元素的时间复杂度是...
1…345…22
avatar
李博帅
文章
218
标签
10
分类
10
Follow Me
公告
记录自己的学习成长
最新文章
GNOME 桌面环境必备软件与插件推荐2026-01-15
Flink进阶-深入理解 Flink 运行时架构2025-12-16
Flink进阶-彻底搞懂 OperatorChaining 与 SlotSharing 的区别与联系2025-12-16
Flink进阶-10道实战题彻底搞懂 Operator Chaining 与 Slot Sharing2025-12-16
并发内功-代码线程安全分析四个步骤整合版2025-11-25
分类
  • Java46
  • 前端1
  • 大数据24
  • 容器化43
  • 杂货小铺18
  • 环境搭建14
  • 监控预警7
  • 算法8
标签
Java 算法 环境搭建 运维手册 前端 计科基础 容器化 监控预警 大数据 杂货小铺
归档
  • 一月 2026 1
  • 十二月 2025 3
  • 十一月 2025 10
  • 十月 2025 1
  • 八月 2025 18
  • 七月 2025 19
  • 六月 2025 23
  • 五月 2025 11
网站信息
文章数目 :
218
运行时间 :
本站总字数 :
383.9k
最后更新时间 :
©2022 - 2026 By 李博帅
框架 Hexo 7.3.0|主题 Butterfly 5.3.5

豫ICP备2025118913号

搜索
数据加载中