- 博客(55)
- 收藏
- 关注
原创 flink数据读取,输出,转换,聚合,分区,分流,合流算子详解
内容是关于Flink读取数据(集合、socket、文件、Kafka、数据生成器)和基本转换算子(map、filter、flatMap)的Java代码示例。提供了大量代码
2026-09-05 21:25:36
198
原创 flink基础知识,系统运行时架构,部署模式详解
<think>我们只需要根据用户提供的长文本生成摘要,字数≤150字。文本内容是关于Flink核心知识、系统架构、部署模式的介绍。摘要应概括主要内容。注意摘要要求准确、简洁,不超过150字。需要包括Flink特点、架构要点、部署模式。因为要覆盖很多,摘要可以总括。 我们需输出中文摘要,注意字数。不包含其他无关内容。 先理解全文内容: 第一部分:Flink核心基础,定义、优点、与Spark Streaming区别。 第二部分:系统架构:JobManager、TaskManager、客户端、并行度、算子链、任务
2026-09-03 14:32:35
198
原创 langchain服务部署
本文介绍了如何使用FastAPI和LangChain构建一个简单的API服务器,实现与通义千问大模型(qwen-vl-max-latest)的交互。服务端代码演示了三种路由配置:直接调用模型、添加输出解析器、以及结合提示模板的完整处理链。客户端代码展示了如何通过RemoteRunnable进行远程调用,包括同步调用和流式输出两种方式。该实现支持自定义API域名,可通过/docs界面查看API文档,默认运行在8000端口。代码中特别强调了输出解析器(StrOutputParser)的正确拼写,并提供了调试模式
2026-08-06 17:14:04
11
原创 大模型基础api调用,不同模型功能对比--------包括有无思考,流式输出,工具调用,图片解析等
本文介绍了如何封装两个基本函数:模型接入和流式输出,以及工具的配置。首先展示了如何调用OpenAI的API接入模型,并设置模型参数如enable_thinking和thinking_budget以启用深度思考功能。然后,通过stream_output函数实现流式输出,分别处理思考内容、工具调用和回复内容。工具配置部分定义了两个函数:get_current_weather(随机返回天气)和get_current_time(返回当前时间),并将其注册为工具。最后,演示了完整的调用流程,包括工具调用、流式输出和深
2026-08-06 16:26:29
30
原创 docker的shell命令和exec两种格式解析
本文深入解析了Docker中Shell格式与Exec格式命令的本质区别及生产环境最佳实践。Shell格式通过中间Shell进程执行命令,存在信号丢失风险(主进程无法传递终止信号给应用)和Shell注入安全隐患;而Exec格式直接以应用作为主进程,完美解决这两个问题。文章通过进程树图解和攻击场景演示,清晰呈现了两种格式的底层差异,最终给出了生产环境必须使用Exec格式的明确建议,并对必须使用Shell特性的场景提供了"Exec格式+安全脚本"的折中方案,强调通过exec命令实现进程替换来保证安全性。全文以问题
2026-08-02 18:43:27
550
原创 数据领域两大核心建模方法论--------三范式和维度建模对比
前置核心概念① 函数依赖:若 A 字段能唯一确定 B 字段的值,称「B 依赖于 A」(例:用户 ID 能唯一确定用户名,用户名依赖于用户 ID);② 部分函数依赖:联合主键中,仅用主键的一部分字段,就能确定某个非主键字段(例:联合主键【订单 ID + 商品 ID】中,仅商品 ID 就能确定商品名称,商品名称部分依赖于主键);③ 传递函数依赖:A 确定 B,B 确定 C,称「C 传递依赖于 A」(例:用户 ID 确定省份 ID,省份 ID 确定省份名称,省份名称传递依赖于用户 ID);
2026-03-10 16:27:42
399
原创 docker安装方案解析,run和exec命令对比,参数-itd不同场景的使用细节
本文详细解析了Docker使用中的关键概念和操作。首先区分了"在CentOS上安装Docker"与"在Docker中运行CentOS容器"的本质差异;然后拆解docker run命令的执行流程,包括镜像检查、拉取、容器创建和启动过程;接着对比docker run和docker exec的区别,前者创建新容器,后者在运行中的容器执行命令;最后重点分析了-itd参数组合的使用场景,通过比喻生动说明了-i(保持输入)、-t(分配终端)和-d(后台运行)参数的不同作用,并总结
2026-03-09 18:19:35
487
原创 为什么yarn的资源利用率低
YARN资源利用率低的核心原因主要包括:1)固定大小的Container分配机制导致资源浪费;2)调度器策略(容量/公平/FIFO)的保守性造成资源闲置;3)用户超额申请资源;4)节点资源碎片化无法有效利用;5)静态资源配置限制;6)应用并行度不足;7)资源预留机制和调度开销。这些问题本质上是资源分配灵活性与实际需求多样性不匹配造成的,表现为Container死板、调度保守或应用浪费。优化需要从资源粒度、调度策略和资源配置等多方面入手。
2026-03-09 15:13:15
441
1
原创 如果企业中的存储类组件(hdfs/kafka)很少上云原生、Spark /flink直接跑 YARN 完全能用,为什么还要用云原生
摘要:云原生并非为了替换传统存储或运行Spark/Flink,而是解决企业四大痛点:1) YARN资源利用率低(20%→60%+),K8s实现混合负载调度;2) 任务隔离差,K8s Pod实现强隔离;3) 环境依赖冲突,容器化打包解决;4) 弹性不足,K8s分钟级自动扩缩容。实际架构常采用"存储不动(HDFS)+计算云原生化(K8s)"模式,核心价值在于提升管理效率、降低成本并增强弹性。(149字)
2026-02-28 17:15:40
572
原创 云原生----Docker + K8s(优缺点及用途)
云原生技术(Docker+K8s)为现代应用开发提供了标准化解决方案。Docker通过容器化实现"一次打包,到处运行",K8s则提供容器编排管理能力,二者结合可实现环境统一、快速扩缩容、自愈等优势。该技术特别适合计算类应用(如Flink/Spark),但存在学习成本高、架构复杂等缺点,存储类系统(如HDFS/Kafka)上云原生难度较大。云原生虽能提升资源利用率和运维效率,但需根据实际需求评估是否采用,避免过度设计。
2026-02-28 16:53:59
636
原创 SparkSQL---编程模型的操作,数据加载与落地及自定义函数的使用
/案例//加载文件//sql查询风格//首先将数据注册为一张表//赋予函数功能//注册函数//使用sql风格查询。
2024-07-31 12:08:46
564
原创 SparkSQL---简介及RDD V.S DataFrame V.S Dataset编程模型详解
SparkSQL,就是Spark生态体系中的构建在SparkCore基础之上的一个基于SQL的计算模块。
2024-04-25 22:33:20
951
3
原创 Spark---持久化,共享变量和RDD之间的依赖关系详解
Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当您持久化RDD时,每个节点将其计算的任何分区存储在内存中,并在该数据集(或从该数据集派生的数据集)上的其他操作中重用这些分区。这使得未来的行动更快(通常超过10倍)。缓存是迭代算法和快速交互使用的关键工具。
2024-04-25 21:07:55
1104
3
原创 Spark---RDD的创建分类和基础操作算子详解
转换算子(Transformations) (如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。集合中的每一个元素,都要作用func匿名函数,返回0到多个新的元素,这些新的元素共同构成一个新的RDD。是一个one-to-many的操作。
2024-04-21 14:28:25
1343
1
原创 Spark---核心概念(Spark,RDD,Spark的核心构成组件)详解
Spark就是一个集成离线计算,实时计算,SQL查询,机器学习,图计算为一体的通用的计算框架。何为RDD?其实RDD就是一个不可变的scala的并行集合。Spark的核心概念就是RDD,指的是一个不可变、可分区、里面元素可并行计算的集合,这个数据的全部或者部分可以缓存在内存中,在多次计算间被重用。
2024-04-18 20:56:35
2347
原创 Scala---函数式编程(匿名函数,高阶函数map,flatMap,foreach,filter,partition,fold,reduce,groupBy等)
2、foldRight(zeroValue)((A1, A2) => A3)就是一个聚合函数,开始A2为zeroValue,A1为集合(从右往左取)中第一个元素,聚合的结果就是A3,那么在下一次的聚合过程中,A3就成了A2。之后每一次拿着上一次聚合的结果A2和集合(从右往左取)中的下一个元素A1进行聚合。4、reduceRight((A1, A2) => A3)就是一个聚合函数,开始A1,A2为集合(从右往左取)中前两个元素,A2为第一个元素,聚合的结果就是A3,那么在下一次的聚合过程中,A3就成了A2。
2024-04-18 14:10:20
670
原创 Scala---集合(数组,Map,元组(Tuple),Zip拉链)详解
scala的集合分为了两类,一类是可变的集合(集合可以执行增删改查操作),另一类是不可变集合(集合元素在初始化的时候确定,后续只能进行查,有的可以进行修改,有的不可以)。二者可能名称一样,但是在不同的包下面,对应的包为:scala.collection.mutable和scala.collection.immutable。scala默认使用的集合,或者默认导入的包是immutable。(说明:这里提到的可变或者不可变,指的是,以及容器的长度可变或者不可变。
2024-04-14 22:24:06
999
原创 scala---面向对象(类,对象,继承,抽象类,特质)
Scala中的这个继承和java的继承有一个缺陷,只能进行单继承,可以进行多层继承,但是多层继承又有要求,类与类之间必须具有继承关系,这显然不一定满足,还是有局限的。class中定义的main是无法运行,因为class结构中只能拥有非静态,而object所修饰的结构中的所有的成员都是static静态,所以object的作用1、给Scala类提供程序运行的入口,静态的main函数。在java中的一个class既可以拥有非静态的成员,也可以拥有静态static的成员。类就是对客观的一类事物的抽象。
2024-04-14 20:31:06
1269
1
原创 Java---搭建junit4.x单元测试环境,并进行测试
搭建junit4.x单元测试环境1.选择Project Structure2.选择Modules,选择要加入测试环境的模块,选择Dependencies,可以看到当前模块都有哪些依赖。3.点击 + 后选择第一个4.找到你安装IDEA的文件夹,进入到IntelliJ IDEA 2018.3.4\lib目录下,找到junit-4.12.jar,点击OK。注:Junit和hamcrest-core必须一起导入,否则会报错5.导入hamcrest-core.jar,步骤同导入Junit一样点
2024-04-13 21:07:57
856
1
原创 scala---基础核心知识(变量定义,数据类型,流程控制,方法定义,函数定义)
Scala 是一种多范式的编程语言,其设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。
2024-04-13 20:59:18
979
原创 Java----工具类和常用类
Arrays类是操作数组的工具类,提供了大量对数组进行操作的静态方法。1.toString:把数组变成字符串格式2.sort():对数组的数据进行排序3.copyof(数组,长度):数组拷贝Date类Date表示日期的逻辑值 Date date = new Date(); //系统当前时间 System.out.println(date); long time = date.getTime(); // 获得date距离1970-1-1 00:00:00 过了多少毫
2024-02-25 17:46:34
902
原创 Java---泛型详解
泛型在学习集合的时候,集合可以存放任意对象,只要把对象存储到集合后,他们都会被提升到Object类型,在我们取出每一个对象,并进行相应操作时,就必须采用类型转换。而在转换的时候就容易产生类型转换异常。为了解决这个问题,就使用了泛型。泛型定义让一个集合只存储同一类型对象...
2024-02-25 17:45:43
470
原创 Java----多线程详解
实现Runnable接口比继承Thread类所具有的优势:1.适合多个相同的程序代码的线程去共享同一个资源2.可以避免java中的单继承的局限性3.线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类。
2024-02-25 17:44:25
1063
1
原创 Java---多线程安全问题(线程同步,死锁,协作,线程池)
线程安全1.如果多个线程在同时运行,而这些线程可能会同时运行这段代码,程序每次运行结果和单线程运行的结果是一样的,而且其他变量的值也和预期的是一样的,这就是线程安全的。2.产生线程安全问题的原因:多个线程同时对成员变量进行写的操作的时候,没有进行数据同步或者其他处理,多个线程就会产生线程安全问题。线程同步Java中提供了同步机制(synchronized)来解决,解决的原理就是,当某个线程进入代码执行的时候,其他线程只能在外面等着,当这个线程操作结束,其他线程才有机会进入这个代码块去执行。同步的三
2024-02-25 17:43:42
1157
原创 Java----垃圾回收机制GC
概述 当对象被创建的时候,就会在Java虚拟机的堆内存中拥有一块内存,在Java虚拟机的生命周期中,Java程序会陆续创建无数个对象,假如所有对象都永久占有内存,那么内存有可能很快被消耗光,最后引发内存空间不足的错误。因此必须采取一种措施来及时回收那些无用对象的内存,以保证内存可以被重复利用。 在一些传统的编程语言(如
2024-02-25 17:42:41
393
原创 Java---内部类
内部类概念在一个类中定义的类叫做内部类,包含这个内部类的类叫做外部类。public class test { private int id; private String name; class MyInner{//内部类 }}为什么使用内部类避免名字的泛滥和对外部不可见,内部类可以直接使用外部类的私有成员。内部类分类成员内部类:(1) 普通成员内部类class 外部类{ class 内部类类名 { 内部类成员 }}说明:① 内部类
2024-02-25 17:42:08
572
原创 Java---新特性_函数式接口详解
函数式接口Lambda表达式使用的前提,就是接口必须是一个函数式接口。定义如果在接口中,只有一个抽象方法,那么这个接口就是函数式接口
2024-02-24 18:20:27
442
1
原创 Java----File对象以及IO流详解
File对象概念1.文件和目录路径名的抽象表示形式。也就是说如果希望在程序中操作文件和目录都可以通过File类来完成2.File类可以新建,删除,和重命名文件和目录。但File不能访问文件本身,如果需要访问文件内容,则需要I/O3.File类的实例表示一个文件或者目录(文件夹)4.构造一个File实例并不是创建这个这个目录或文件,而是该路径的一个抽象,他可能真实存在也可能不存在(就是指向这个文件或目录)File的构造方法1.public File(String pathname):通过将给定的
2024-02-24 18:16:30
1065
原创 Java---新特性,Lambda表达式详解
Lambda表达式lambda表达式就是对匿名内部类对象的一种格式的简化。java8引入了一个新的操作符"->",称为箭头运算符,或者lambda运算符。lambda表达式只能简化拥有一个抽象方法的接口或者抽象类1.方法无参无返回值 /*Runnable r = new Runnable() { @Override public void run() { System.out.println("aaaa");
2024-02-24 18:12:45
470
原创 拷贝虚拟机到另一台电脑上的时候连不上网络,ping不通百度的解决办法
当拷贝虚拟机到另一台电脑上的时候,其他都没出现问题,但是ping不通baidui,但是在原来的机器上没有问题一、首先在VMware中点击编辑–>点击虚拟网络编辑器,将NAT模式的子网地址改为和你原来机器上的子网地址一样。二、进入虚拟机,查看NetworkManager服务的状态,如果是开启状态就...
2021-09-24 10:36:43
3008
原创 插入移动硬盘时出现Synaptics.exe - 损坏的映像错误的解决办法
出现如上错误时,使用杀毒软件查杀一下,就可以解决问题,原因是硬盘可能中病毒了。如果查杀完成后,再次插入硬盘时电脑没有反应,那么选中此电脑–>右键选择属性–>选择设备管理器–>选择通用串行总线控制器–>选择USB根集线器(USB 3.0),然后右键卸载它,重启电脑,再次插入硬盘时就可以了。...
2021-09-23 19:18:26
34060
原创 clickhouse将csv文件导入表中出现的 DB::ParsingException: Cannot parse input: expected ‘,‘ before: ‘\‘错误的解决方法
将csv文件导入到clickhouse的表中出现如下错误是由于csv文件中的符号出现解析错误注意:csv文件中的分隔符是“,”,而不是”制表符“,仔细检查一下。
2021-09-07 14:07:00
4546
原创 在flink集群中运行jar包出ClusterRetrieveException: Couldn‘t retrieve Yarn cluster问题的解决办法
如果将idea上的flink代码打包运行在flink集群上,出现如下问题有两方面需要考虑:一、修改yarn-site.xml配置文件,原因是可能内存超过虚拟内存的限制,所以需要对yarn进行虚拟内存限制修正,将如下两个配置改为false<property> //pmem指的是默认检查物理内存,容器使用的物理内存不能超过我们限定的内存大小,因为我们上面设置了所有容器能够使用的最大内存数量,超出这个内存限制,任务就会被kill掉 <name>yarn.nodema
2021-08-30 22:40:13
3732
1
原创 Spark集群整合hive以及java.lang.ClassNotFoundException: org.apache.tez.dag.api.SessionNotRunning问题解决
通过spark操作hive中的数据在集群(服务器)上整合步骤1.如果在spark的bin目录下存在metastore_db或者spark-warehouse文件,将这两个文件删除2.导入配置文件1.hive/conf/hive-site.xml2.hadoop/etc/hadoop/core-site.xml和hdfs-site.xml将上述三个文件放入spark/conf目录下,这样就整合好了3.问题如果遇到以下问题将spark下的conf目录中的hive-site.xml里引擎的
2021-08-16 19:38:46
1117
原创 安装本地yum源出现,错误:软件包:httpd-2.4.6-80.el7.centos.x86_64,您可以尝试添加 --skip-broken 选项来解决该问题
出现如下错误时:原因:可能是在配置本地yum源时安装的软件版本高于需要安装的软件版本。解决:将高版本的软件卸载,再安装需要的版本,这样就解决了1.卸载2.安装
2021-06-21 21:16:59
7001
3
原创 Java---StringBuilder与String的比较
StringBuilderStringBuilder:是一个可变的字符序列,因为在类中提供了修改私有变量的方法,常用的方法是append和insert,就是在StringBuilder本身上,进行修改。String:长度本身不可变,StringBuilder长度可变。构造方法1.作用:创建当前对象,将其他类型的数据,装换成当前类型2.构造方法:①StringBuilder():创建一个生成器,初始容量为16个字符②StringBuilder(int capacity):创建一个生成器,初始容量
2021-06-10 09:42:22
1438
1
原创 Java----反射详解(获取Class对象,构造方法,还有类中的方法和属性,泛型擦除的应用)
反射类加载机制当一个class文件被加载进内存时,在JVM中将形成一份描述该class文件结构的元信息对象class,通过该对象可以获知class文件的结构信息:如构造器,字段,方法等。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。总而言之,class文件被虚拟机加载进内存产生Class对象的过程就是类加载机制反射的概念既然万物皆对象,那么类名,构造器,字段,方法等这些信息当然也需要封装成一个
2021-06-08 16:59:06
689
原创 存储过程出现--1172 - Result consisted of more than one row错误的解决方法
下面是带一个输入参数,和两个输出参数的正确的存储过程delimiter &&create procedure user_test(in userid int,out name varchar(100),out uage int)BEGINset @id=userid;SELECT Username,Age into name,uage FROM user WHERE Id=@id LIMIT 1;#SELECT Age into age FROM user WHERE Id=@i
2021-06-07 22:22:35
2419
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅