k8s
文章平均质量分 75
鸿乃江边鸟
Apache Spark Contributor
专注于技术的dotaer
展开
-
FLINK ON K8S 基于Zookeeper和基于K8S原生HA的区别
本文基于Flink 1.13.x。原创 2022-10-13 09:57:31 · 1205 阅读 · 0 评论 -
Flink 基于K8S HA 存在的问题
在基于原生K8S做JobManager HA服务的前提下,随着部署在K8S的flink任务越来越多,JobManager节点挂的频率越来越高,这严重影响了整个Flink作业的运行。其实最主要的原因是flink集群对etcd的访问过于频繁(etcd是K8S的最为关键的组件),导致了整个K8S集群的不稳定。对于目前的flink的架构,画出如下的图,该图也是参考了。本文基于Flink 1.13.x。原创 2022-10-12 16:21:17 · 1081 阅读 · 0 评论 -
SPARK k8s backend中Executor Rolling(Executor的自动化滚动驱逐)
主要解决在Streaming中由于一个Executor的处理延迟导致整个Streaming任务延迟,但是这也是适用于批任务,使得批任务Executor的驱逐更加灵活。(通过AppStatusListener机制获取到对应的Event,从而存储信息)存储中取出Executor的信息,进而根据配置的策略(Executor创建的ID,失败的task,GC时间等)进行驱逐。当然在驱逐Executor的时候,也会考虑目前在Executor上运行的task的个数,具体配置为。,关于SparkPlugin,可以参考。..原创 2022-07-23 07:43:48 · 949 阅读 · 0 评论 -
SPARK的计算向量化-已有的向量化项目
背景在SPARK的计算向量化-spark本身的向量化中,我们提到spark是利用代码生成(生成for循环),从而JIT进行向量化。这是有局限的,所以大部分公司都会采用通过其他方式来进行向量化计算。我们列举几种已知的应用到spark计算引擎的向量化技术。VeloxMeta(也就是Facebook)开源的一个C++实现的SQL执行引擎,输入逻辑执行计划,利用SIMD指令实现向量化操作,输出结果;结合Apache Arrow作数据交换,可以实现Spark的计算向量化。项目见facebookincuba原创 2022-05-30 20:56:47 · 3597 阅读 · 0 评论 -
Spark hive类总是优先记载应用里面的jar包,跟spark.{driver/executor}.userClassPathFirst无关
背景最近在弄spark on k8s的时候,要集成同事的一些功能,其实这并没有什么,但是里面涉及到了hive的类问题(具体指这个org.apache.hadoop.hive.包下的类)。之后发现hive类总是优先加载应用jar包里的类,而忽略掉spark自带的系统jars包,这给我带了了很大的困扰,大约花了一两周的时间,终于把这个问题排查清楚了。问题分析直接分析:我们知道在spark提交的时候,会获取URLClassLoader去加载类,如下:private def runMain(args: S原创 2021-08-09 18:01:49 · 637 阅读 · 0 评论 -
spark on k8s的动态资源分配和external shuffle Service以及任务的队列资源管理
我们知道目前在spark on k8s的官网中,这里有两项很明显的future work。动态资源分配和外部的shuffle serivce任务队列以及资源管理也就是说,目前这两项spark还是不支持的,借助于广大社区的力量,各个大厂都提出了自己的开源方案外部的shuffle service通过RSS(remote shuffle service)来解决关于RSS可以参考spark remote shuffle service(RSS)杂谈, 简短的解释一下:在yarn中 动态资源分配是需原创 2021-06-09 13:11:07 · 956 阅读 · 5 评论 -
【k8s系列5】KubernetesClientException: too old resource version 原因分析
背景公司目前在基于k8s做调度(基于io.fabric8:kubernetes-client:4.2.0),在运行的过程中,遇到了如下问题:OkHttp WebSocket https://10.25.61.82:6443/...] DEBUG io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager - WebSocket close received. code: 1000, reason: [OkHttp WebSocket原创 2020-11-18 10:36:17 · 5419 阅读 · 0 评论 -
【go系列1】go的安装(mac)
由于之前项目依赖到了k8s,且与k8s的集成比较多,而k8s的源码是go写的,网上搜索了一大堆关于go的信息,发现很多云原生的项目都是由go写的,所以又来折腾以下go语言,因为之前用brew install mac安装了go,也用了pkg包安装了go,所以环境够的很乱,至此,特定来清理一下安装方式brew install go官网下载对应的安装包,直接安装注意:第一种方式安装,go可执行文件在/usr/local/bin下,其实这个目录下的go是一个软连接,➜ bin ll /usr/原创 2020-11-11 17:24:00 · 285 阅读 · 0 评论 -
【k8s系列2】spark on k8s(kubernetes) DynamicResourceAllocation(DRA)
随着大数据时代的到来,以及kubernetes的愈发火热,好多公司已经把spark应用从yarn迁移到k8s,当然也踩了不少的坑, 现在我们来分析一下spark on k8s的DynamicResourceAllocation这个坑注意:该文基于spark 3.0.0分析spark on yarn 中的DynamicResourceAllocationspark on yarn对于DynamicResourceAllocation分配来说,从spark 1.2版本就已经开始支持了.对于.原创 2020-10-15 19:13:25 · 389 阅读 · 0 评论 -
【k8s系列3】kubernetes(k8s) scheduler backend 调度的实现
背景 随着k8s快来越火热,以及自动部署,自动伸缩等优点,我们今天来探讨一下,基于k8s的backend的调度怎么来实现组件图组件说明整个数据流就是消费者-生产者模型组件解释kubernetesClient跟k8s进行交互,如:任务的提交,杀任务podsPollingSnapshotSource从k8s中拉取pod的任务状态,存储到podSnapshotStorepodsWatchSnapshotSource监控任务的watcher,以获取任务状态,存储原创 2020-10-13 17:26:50 · 665 阅读 · 0 评论