自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 一个由输电线路在线监测通信规约自动借助AI生成通信客户端程序引发的思考

2025年春节网上最热闹的事情非deepseek莫属了。无论是手机上、还是身边的同事、客户都经常谈论这项被认为是中国AI技术重要的里程碑式意义的事情。过完春节上班,我们团队第一时间部署一个开源的deepseek-r1-distill-Qwen-14B模型试试看。我们团队从事AI应用相关工作已经1年多了,此前也在项目中部署用Qwen2、Glm-3等国产开源大模型,从我个人的业务场景角度出发,deepseek对我们应用的实际效果提升还有待验证和发掘,但用户有想法我们就得提前开始各种技术尝试。

2025-02-07 10:14:47 554

原创 Qwen2-VL-Instruct安装及测试记录

或者,右键点击下载按钮,复制下载链接,之后在服务器上使用wget命令下载。取消“Driver”选项,因为已经安装过显卡驱动了, 这里不需要安装,然后选择“Install”。执行安装脚本后,一直按回车,直到出现输入yes or no的选项,输入yes。对应显卡,依次选择筛选条件,版本选择为12.4,设置好条件后,点击“查找”,依次点击选项卡,设置筛选条件,选择所需版本后,页面下方会生成安装命令。保存后,执行“source ~/.bashrc”命令,更新环境变量。● 16vCPU(虚拟中央处理单元)

2025-01-23 16:39:37 1296 2

原创 Spring框架下application.yaml文件引用包含外部配置文件

在进行SpringBoot应用程序开发时,在工程目录下有一个application.yaml文件(或application.properties文件)。在这里面可以添加应用程序的配置项。application.yaml配置文件在程序打包的时候,会打包到jar文件中。在程序部署的时候,有些信息需要根据现场缓存调整,如果打包到jar文件中修改不方便。我们希望程序的配置文件由两部分组成,一部分是可能变的,一部分是不变的。

2024-12-06 13:50:22 485

原创 大数据平台的网络安全架构

大数据平台(XSailboat)是一个构建在机器集群之上的分布式系统,内部包含众多的基础设施和服务。除API网关和前端Web应用之外,其它的服务和基础设施都没有增加什么额外的安全控制,它们是不应该对外暴露的。为此我们引入了类似安全子网的机制,在网络上把整个平台的集群关入一个盒子中,只把API网关和前端Web应用暴露出去,对外提供服务。可以通过SDN(软件定义网络)或通过高级网络管理工具,将大数据平台的集群,关在一个黑盒子里(安全子网),只开放有限的端口,例如有安全访问控制的Web应用前端、API网关。

2024-11-18 10:17:19 414

原创 OAuth2.1的code_challenge和code_vertifier理解

PKCE(Proof Key for Code Exchange)是一种扩展,旨在提高 OAuth 2.0 授权码模式的安全性,特别是当授权码在公共客户端(如运行在浏览器中的 JavaScript 应用或移动应用)中使用时。PKCE 通过在授权请求中添加一个额外的验证步骤来防止授权码被拦截和滥用。

2024-10-12 12:47:48 1244

原创 基于Flink的流式计算可视化开发实践之配置->任务生成->任务部署过程

在我们的DataStudio模块中实现了基于Hive的业务流程开发和基于Flink的实时计算管道开发。DataStudio是用来进行数据开发的,属于开发环境,另外还有任务运维模块,负责离线分析任务和实时计算任务在生产环境的部署和运维。在开发环境开发好的业务流程和计算管道可以提交/发布到生产环境。整个大数据平台的可视化开发其实都是一种配置驱动的思想。在界面上开发编辑的都是一种配置数据,在部署运行的时候,后台会有程序将其转为可执行程序或解释执行配置。

2024-09-06 09:01:30 1800 4

原创 在我们的大数据平台(XSailbaot)上进行企业级数据建模的思路

笔者所在的公司是差不多二十年前搞CIM(公共信息模型的)起家的。当时公司的前辈搞了基于的模型服务器、数据服务器、模式编辑器等,形成了一套基于公共信息模型建模的平台系统。其中可视化建模,建好了模式类以后,就有一套面向对象的接口,可以对数据进行增删改查的特性,让我记忆深刻,与使用JDBC或者JPA开发代码操纵数据形成鲜明的对比。在我看来,随着时代的发展,那一套产品已经显得有些不合时宜了,在此处不想去例举太多理由,但我始终觉得其思想仍然有非常多闪光的地方。

2024-06-30 21:59:54 1250 1

原创 Properties配置加载(@PropertySource),额外不定的配置项单独存储到Map的一次歧路记录和正确解决思路

笔者的一个微服务的配置是ini文件中存储的。通过下面的方式加载。现在有一些必定数量的参数,它们都以固定的前缀开始,例如想把ai.models.*的配置都收集到一起。

2024-05-09 14:39:03 335 1

原创 Torch not compiled with CUDA enabled问题解决过程记录

运行大模型的时候,出现错误:Torch not compiled with CUDA enabled原因:并不是电脑安装了nvdia显卡驱动就可以的,还需要安装另外还需要确保安装的python是GPU版本的。通常是CPU版本的。

2024-04-11 10:20:13 13482 3

原创 Huggingface模型下载

huggingface的模型排行榜(需要翻墙):https://huggingface.co/spaces/mteb/leaderboard。

2024-03-30 15:44:08 676

原创 Python环境构建笔记

注:pip config命令配置的信息在机器重启后仍然会起作用。这是因为pip config命令是用来管理pip的配置信息的,它会把配置信息保存在配置文件中。这些配置文件通常是持久的,不会因为机器重启而丢失或改变。因此,即使机器重启,pip还是会根据这些配置文件中的信息来执行相应的操作。

2024-03-25 14:56:39 591

原创 Hive的UDF开发之向量化表达式(VectorizedExpressions)

笔者的的SailWorks模块包含离线分析功能。离线分析的后台实现,包含调度引擎、执行引擎、计算引擎和存储引擎。计算和存储引擎由Hive提供,调度引擎和执行引擎由我们自己实现。调度引擎根据DAG图和调度计划,安排执行顺序,监控执行过程。执行引擎接收调度引擎安排的任务,向Yarn申请容器,在容器中执行具体的任务。我们的离线分析支持编写Hive的UDF函数,打包上传,并声明使用函数。

2024-02-21 17:42:57 1305

原创 Python的类(Class)和描述器(Descriptor)

笔者的的SailWorks模块包含离线分析功能。离线分析的后台实现,包含调度引擎、执行引擎、计算引擎和存储引擎。计算和存储引擎由Hive提供,调度引擎和执行引擎由我们自己实现。调度引擎根据DAG图和调度计划,安排执行顺序,监控执行过程。执行引擎接收调度引擎安排的任务,向Yarn申请容器,在容器中执行具体的任务。在容器中执行的任务我们是用Python语言实现的。在实现这个组建时,笔者是对着python的基础语法教程,边学边写。

2024-01-30 10:29:53 973

原创 Jackson序列化Bean额外属性附加--@JsonAnyGetter、@JsonUnwrapped用户

有一项工作,需要将数据从一个服务S中读取出来(得到的是一个JSON),将数据解析转换以后构造成一个数组的类型A的对象,写入到一个服务T中。在发现需要增加一种类型A的字类型B,这个类型属性非常多(将近一百),在这种情形下,如果直接定义出类型B来,定义那么多属性,还得设置,将会有更大的工作量,所以考虑是不是这些额外的信息可以用一个Map来存储。

2024-01-24 16:03:25 681

原创 钉钉企业机器人单聊消息发送实践-大数据平台(XSailboat)消息中心消息推送

在笔者开发的中有模块,用来全平台的消息收集,整理分拆、订阅发送等功能。消息推送方式支持钉钉群聊、钉钉单聊、短信通知。现记录一下企业机器人消息单聊推送的实现过程。

2024-01-22 09:29:38 1708

原创 Jackson标签的高阶使用样例--多继承/子类、对象id、JsonIdentityInfo、JsonTypeInfo、JsonSubTypes

最近笔者在开发的模块。它的其中一个功能是能定义并查看资产数据。我们支持的资产类型不仅有关系数据库表,也支持Kafka主题,hdfs上的文件等。对于Kafka主题,hdfs文件等,它们没有强模式约束和描述,但为了理解、查看和约束其中的结构化数据,我们支持在这类资产上附加上模式定义的功能。对于模式的描述/模型,我参考了JsonSchema,OpenAPI 3.0的Schema,最终决定自己定义模式结构。这种模式结构能扩展、能转换成那些标准模式,为后续扩展和适应性调整留余地。

2024-01-18 11:26:01 911

原创 增加Java对象序列化和反序列化灵活性、适应性的方法

笔者在进行SailFlink框架开发的时候,涉及大量需要序列化和反序列的类,尤其是各种算子的Function方法。随着SailFlink框架的演进,很多早已写好的Function类需要增、减、修改属性,这种修改从信息上是可以向后兼容的,但如何才能放序列化逻辑能兼容旧版本,使得现场能生成保存点并更新重启Flink任务?这需要在开发的时候,就采用具备这种灵活性和适应性的序列化数据结构和逻辑设计。下面描述本人的序列化和反序列化方案设计。

2024-01-16 17:40:14 528

原创 基于大数据平台(XSailboat)的计算管道实现MySQL数据源的CDC同步--flink CDC

笔者在先前的一篇文档提到了关于数据标签的模块,现已实现并应用于项目中。如果打标信息和业务数据是在一个数据库实例中,那么只需要连接两张表进行查询即可。但是数据标签作为大数据平台的模块,显然是不能将打标数据分散到各个业务系统数据库中的,所以我们就想到了使用CDC,将相关的打标数据同步到需要这些数据的业务库中。

2024-01-16 14:08:25 970

原创 Aviator表达式扩展--数组、列表负向序号索引以及自己的JSON库支持方括号([])赋值

笔者开发的大数据中的DataStudio模块包含基于DAG图的实时计算可视化开发功能,实现了Flink计算任务的可视化开发(想要了解更多,可以查看我们都知道,原生的Flink任务开发适合在IDE中使用代码去开发调试,想要去做可视化是很难的。为此引入了“模式框架+Aviator表达式”的可视化思路,为的就是让Flink任务适合界面开发,又不过多失去原生Flink的表达能力。是一个非常优秀的表达式语言,适合应用在需要轻度编程的场景下。

2023-12-29 10:32:55 1531

原创 Flink的ListState在小规模场景下的缓存提速和接口优化丰富的实践

笔者的中包含以DAG方式可视化的离线分析和实时计算的开发、运维功能。实时计算功能,底层是基于Flink,我们在此基础上开发辅助插件和可视化开发运维套件,我们将其称之为SailFlink。原生的Flink算子适合在IDE代码环境下用代码开发,并不适合做可视化,所以必须在原生算子基础上做一定的抽象和限制。至于我们是怎么做的,可以参考。SailFlink对状态存储器也进行了包装,提供“单值”、“队列”(有界的)、“键值”三种状态存储器。有界队列型状态存储器,后台是ListState。

2023-12-23 14:47:18 1134

原创 关于Flink在一条计算管道中配置流和数据流通过广播方式合流的情形下,无保存点和检查点重跑时,让配置流先行,数据流等延迟几秒再进入合流节点的思考

1. 背景笔者带领的团队在自研的大数据平台XSailboat 上进行专家策略规则的计算管道开发时,遇到这样一种情形:计算管道中存在一条配置流和数据流通过广播方式合流的情形。配置流和数据流的输入源都是Kafka主题,但是是两个不同的Kafka主题。配置流的Kafka主题中存储的是规则配置,数据流中存储的是要分析的数据。在开发调试的时候,这两个主题中已有数据,一调试运行,数据流先到达被处理,配置流晚到,造成开发调试的时候,配置数据没有完全应用上。我们想要做到的目标是,配置流先到达合流节点,等配置数据都更

2023-12-20 19:20:06 1062

原创 在线帮助中心对视频加载,过程优化,降低视频对服务端的负载

在中包含模块,提供在线的帮助文档和平台使用教程。在帮助中心,不仅支持普通的文字,图片,还希望支持视频。前端网页显示出视频数据,在大数据平台的软件架构下,会经历这样的数据链路:在用户点击目录,打开文档时,其实他不一定会去看视频,为了提升效率,希望在用户点击观看视频的时候,才去加载视频。在浏览器端,显示视频使用的是video字段。在默认情况下,当页面dom加载出来之后,会自动去加载视频数据。为了不让它自动加载,我们刚开始尝试了属性。它有auto、metadata、none三个属性可选。

2023-12-07 23:49:35 1184

原创 Flink的Reduce算子,Name-Position形式的Row数据在使用保存点/检查点重新启动的时候,变成了Position-Based形式的Row解决

大数据平台提供了基于Apache Flink的实时计算管道开发功能。DataStudio的实时计算管道开发功能中提供了分区规约节点(keyBy+reduce)。当使用保存点重新部署启动任务的时候,就会出现这样的异常:首先需要说明,XSailboat实时计算框架(SailFlink)中数据都是以NamePoisition格式的Row形式流转的。

2023-12-07 16:27:21 1029

原创 SpringJPA语法样例汇集

【代码】SpringJPA语法样例汇集。

2023-12-06 14:04:17 477

原创 基于Flink的流式计算可视化开发实践关于Flink CEP的实践

为了流量卡,先凑个数。

2023-12-01 15:15:59 151

原创 大数据平台(XSailboat)中的数据服务实践

参数定义有点像代码开发的时候,声明变量并给变量赋值。应用参数和和API内部的参数定义变量的值均支持Aviator表达式或接口服务调用。接口服务(REST API)可以是工作空间内的API(无认证)调用,也可以是API网关上的API(有认证)调用。接口服务类型的参数支持设定缓存时间,以支持缓变数据避免频繁调用。这里是缓存是考虑这个服务调用的参数的,同一变量,不同调用,如果参数不同,是不会使用缓存值的。

2023-12-01 15:11:36 356

原创 Flink在YARN上部署,实例过于集中在一个主机,机器内存不够用,任务崩溃的解决

在我们的中的DataStudio中,提供了离线分析和实时计算的功能。实时计算功能的计算引擎是Flink,我们提供了基于YARN容器,一键部署计算管道的能力。一个工作空间在生产环境下,可以运行有多个Flink集群。工作空间中的一条计算管道,可以部署到各个集群得到多个FlinkJob实例。在我们的生产环境下,计算管道和集群数量都较多,在部署的时候,发现基本都在1两台机器上运行了Flink集群。而且这一两台机器还与另外一个运行XTask任务的YARN资源队列共享资源。

2023-11-25 18:17:29 301

原创 SpringJPA 自动设置创建时间、更新时间、创建人、更新人

涉及的开发技术面广了以后,很多东西掌握了,一段时间没接触、没配置,就又忘了,所以得靠“烂笔头”多记,多总结点。

2023-11-02 14:20:05 619

原创 数据标签设计 -- 大数据平台(XSailboat)的数据标签模块

近期手头的一个项目需要对数据进行大标签。原先就有在中增加“数据标签”模块的设想,现在有这样的需求,正好趁此机会将其实现。将平台内部的模块协作、配合起来,独立又相互支撑,一直是我设计大数据平台,引入模块的一个的原则。

2023-11-01 15:00:31 912

原创 Jackson输出List,元素多类型没有输出type分析及解决

在使用Jackson序列化一个List对象的时候,偶然发现输出的元素都不带表示类型的type字段。先前这个List作为一个JavaBean的字段,序列化整个Bean时,是带有类型的,但单独序列化List的时候,却不带type,造成反序列化无法找到对应的类型。构造下面的示例以说明问题。

2023-10-25 15:19:28 569 1

原创 大数据平台(XSailboat)/微服务集群的日志采集设计与实践

我们的大数据平台由众多的前端web服务和中台服务构成(模块多,总数目前有16个左右)。为了方便查看这些服务的日志信息,我们实现了对这些服务的日志采集、集中存储和查看。

2023-10-24 11:40:27 265

原创 LogBack动态添加Appender

通常情况下,对于SpringBoot微服务,会在logback-spring.xml中配置日志。但有的情况下,可能无法事前配置或者在logback-spring.xml中配置不是最有选择。例如以下情形:情形一:有一个Job调度服务其中运行不定数量的Job。运行多少个以及运行哪些Job,完全由用户配置。要求将这些Job的日志输出到不同的日志文件中。情形二:有一个应用,需要将其中某一模块的日志输出到Kafka。Kafka的联系信息存储在Zookeeper中。

2023-10-23 16:34:24 421 1

原创 数据资产目录(SailCatalog)和数据地图(SailMap)

笔者接下来准备开发大数据平台(XSailboat)中的数据资产目录(SailCatalog)和数据地图(SailMap)相关的功能,本文用以记录笔者关于此部分功能的概念梳理和主体功能设计。

2023-10-21 16:33:39 1695 1

原创 涛思(TDengine)类型的Flink Source实现及与Kafka的对比分析

基于上述的不同,可以发现实现TDengine源节点,应该通过SourceFunction实现,而不应该使用Source来实现。

2023-10-18 17:09:23 684 1

原创 计算管道节(Flink Job 算子)日志动态开启/关闭功能实现

笔者的开发大数据平台中包含基于Flink的可视化计算管道开发和运维功能。状态存储器中数据的查看和节点的日志查看功能是其重要的辅助支撑功能。它能使得在大数据平台上就能完全实现计算管道的开发、调试、部署,逐渐摆脱Flink的原生界面。此篇文档是继文档之后,进一步描述如何实现节点调试日志动态开启/关闭的文档。

2023-10-08 16:45:17 350 1

原创 集群启动部分参数-D后面加空格的原因记录--YarnApp运行Flink的JobManager

今天看到之前通过YarnApp方式运行Flink的JobManager启动命令代码,看到部分-D参数后面带空格很疑惑。相信之前这么做是有原因的,但想不起之前为什么这部分参数-D后面要带空格。

2023-09-28 11:26:19 183 1

原创 指标建模理论——指标、API与数据

指标建模工具是笔者大数据平台中的一个模块,它对于一个大数据分析平台来说有重要的意义。在大数据分析平台上进行数据开发的一项重要产物就是统计计算结果,这其中很大一部分数据可以称之为指标数据。指标建模就是定义、梳理指标的工具。

2023-09-09 22:44:58 412

原创 Flink日志采集、集中存储、可视化查询实践

笔者的开发大数据平台中包含基于Flink的可视化计算管道开发和运维功能。状态存储器中数据的查看和节点的日志查看功能是其重要的辅助支撑功能。它能使得在大数据平台上就能完全实现计算管道的开发、调试、部署,逐渐摆脱Flink的原生界面。Flink分JobManager和TaskManager,JobManager中的日志是总体性的,构建计算管道的过程,就是在JobManager中完成的,而Job的执行则是在TaskManager中。就可以从中找失败原因。

2023-08-28 11:34:35 1243

原创 日志采集与处理 flume拦截器--使用Aviator扩展拦截器功能

在使用flume进行日志收集、处理的过程中,发现flume带的拦截器处理能力不够。笔者开发的大数据平台中广泛使用了,可以通过使用Aviator表达式提升拦截器的处理能力。

2023-08-28 10:56:41 159

原创 本地运行Flink退出时java.nio.file.DirectoryNotEmptyException、目录没有正常删除解决方法

在开发大数据平台中的查看Flink任务的状态数据工具时,用State Process API解析保存点数据,将其从HDFS上读取出来再将其解析过后下沉到HDFS以CSV格式保存,然后由其它接口提供对这个文件的分页加载功能。解析保存点和检查点中状态数据的功能代码是集成在SailWorks生产环境中台服务和DataStudio中台服务中的,状态数据解析出来以后Flink Job相关的资源销毁,服务进程并不会退出。

2023-08-18 08:29:57 1032

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除