OkGogooXSailboat
码龄1年
关注
提问 私信
  • 博客:39,999
    39,999
    总访问量
  • 44
    原创
  • 37,558
    排名
  • 224
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:大数据平台设计与开发者

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
  • 加入CSDN时间: 2023-08-05
博客简介:

OkGogooXSailboat的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    561
    当月
    3
个人成就
  • 获得299次点赞
  • 内容获得20次评论
  • 获得327次收藏
  • 代码片获得2,102次分享
创作历程
  • 15篇
    2024年
  • 29篇
    2023年
成就勋章
TA的专栏
  • 大数据平台开发技术
    21篇
  • 人工智能应用
    1篇
  • 思路
  • 大数据平台开发问题解决笔记
    5篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

344人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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

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

OAuth2.1的code_challenge和code_vertifier理解

PKCE(Proof Key for Code Exchange)是一种扩展,旨在提高 OAuth 2.0 授权码模式的安全性,特别是当授权码在公共客户端(如运行在浏览器中的 JavaScript 应用或移动应用)中使用时。PKCE 通过在授权请求中添加一个额外的验证步骤来防止授权码被拦截和滥用。
原创
发布博客 2024.10.12 ·
816 阅读 ·
5 点赞 ·
0 评论 ·
17 收藏

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

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

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

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

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

笔者的一个微服务的配置是ini文件中存储的。通过下面的方式加载。现在有一些必定数量的参数,它们都以固定的前缀开始,例如想把ai.models.*的配置都收集到一起。
原创
发布博客 2024.05.09 ·
296 阅读 ·
7 点赞 ·
1 评论 ·
3 收藏

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

运行大模型的时候,出现错误:Torch not compiled with CUDA enabled原因:并不是电脑安装了nvdia显卡驱动就可以的,还需要安装另外还需要确保安装的python是GPU版本的。通常是CPU版本的。
原创
发布博客 2024.04.11 ·
9045 阅读 ·
10 点赞 ·
3 评论 ·
33 收藏

Huggingface模型下载

huggingface的模型排行榜(需要翻墙):https://huggingface.co/spaces/mteb/leaderboard。
原创
发布博客 2024.03.30 ·
553 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Python环境构建笔记

注:pip config命令配置的信息在机器重启后仍然会起作用。这是因为pip config命令是用来管理pip的配置信息的,它会把配置信息保存在配置文件中。这些配置文件通常是持久的,不会因为机器重启而丢失或改变。因此,即使机器重启,pip还是会根据这些配置文件中的信息来执行相应的操作。
原创
发布博客 2024.03.25 ·
448 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

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

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

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

在笔者开发的中有模块,用来全平台的消息收集,整理分拆、订阅发送等功能。消息推送方式支持钉钉群聊、钉钉单聊、短信通知。现记录一下企业机器人消息单聊推送的实现过程。
原创
发布博客 2024.01.22 ·
1535 阅读 ·
23 点赞 ·
0 评论 ·
15 收藏

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

大数据平台提供了基于Apache Flink的实时计算管道开发功能。DataStudio的实时计算管道开发功能中提供了分区规约节点(keyBy+reduce)。当使用保存点重新部署启动任务的时候,就会出现这样的异常:首先需要说明,XSailboat实时计算框架(SailFlink)中数据都是以NamePoisition格式的Row形式流转的。
原创
发布博客 2023.12.07 ·
978 阅读 ·
18 点赞 ·
0 评论 ·
19 收藏
加载更多