- 博客(57)
- 资源 (8)
- 收藏
- 关注
原创 【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示
JMX Exporter 利用 Java 的 JMX 机制来读取 JVM 运行时的一些监控数据,然后将其转换为 Prometheus 所认知的 metrics 格式,以便让 Prometheus 对其进行监控采集。配置步骤。
2024-12-03 09:50:49
1104
原创 【rancher镜像】修改rancher官方镜像仓库为私有仓库
在使用rancher构建k8s时,由于中国区网络问题经常没法访问docker的官方仓库镜像docker.io,而rancher在构建k8s时,会默认从docker.io去下载镜像,由于网络原因,构建就会存在问题,镜像无法下载,rancher的组件没法初始化比如以下,rancher无法从官方仓库下载到rancher/shell:v0.1.21,rancher/mirrored-coredns-coredns:1.10.1等等修改rancher默认的镜像仓库到指定仓库具体可以参考rancher官方文档私有镜像仓
2024-08-28 15:15:32
1385
原创 【kyuubi k8s】kyuubi发布k8s执行spark sql
准备好kyuubi的包,spark包,jdk包,还有上篇中重点提到的aws包:awsicelib目录下的jar,还有一点将k8s的config也要打包进来,否则无法通过k8s的认证,没法提交任务。依据上一篇kyuubi与spark集成,并发布spark sql到k8s集群,上一篇的将kyuubi和spark环境放在本地某台服务器上的,为了高可用,本篇将其打包镜像,并发布到k8s。我的busycommand,10s钟检测一次,如果进程没了,重新启动kyuubi。k8s中生成2个executors。
2024-06-17 15:42:55
1142
原创 【kyuubi-spark】从0-1部署kyuubi集成spark执行spark sql到k8s读取iceberg的minio数据
在初次研究了spark sql,发现没有能实时返回数据的方式,spark更着重于执行任务处理,而对于客户端交互没有很好的支持。在搜索了大量资料及chatgpt的帮助下,找到了用kyuubi驱动sparksql来与客户端交互的方法。
2024-06-08 10:23:59
2724
原创 【大数据架构】基于流式数据的大数据架构升级
团队在升级大数据架构,摒弃了原来基于hadoop的架构,因此抛弃了hive,hdfs,mapreduce这一套,在讨论和摸索中使用了新的架构。
2024-06-08 09:32:35
1213
原创 【iceberg数据一致性】iceberg如何保证高并发数据一致性
那么在高并发的时候,同时操作某张表时是如何运作的呢?其实这里iceberg引用了乐观锁的方法。其实在写入数据的时候是有一个验证的操作的,即在准备写入时会检查原文件和带写入文件的差异,如果存在本次写入数据以外的数据,则代表有其他操作已经更新了原文件,那么本次写入会取消,并重试写入的步骤,知道验证完成,写入完成,如此就保证了数据的一致性,并且也解决了HMS锁的问题。在使用iceberg写数据时,一直弄不清楚为什么iceberg写入快,并且能够保证数据的一致性。今天决定搞清楚这个问题,经过查询和理解,写下来。
2024-05-17 14:01:17
692
原创 【spark operator】spark operator动态分配executor
之前在使用spark operator的时候必须指定executor的个数,在将任务发布到spark operator后,k8s会根据指定的个数启动executor,但是对于某些spark sql可能并不需要用到那么多executor,在此时executor的数量就不好控制了。根据pod启动的时间可以看出,先生成了2个executor,在16s后又生成了1个,最后完成,可以看出executor确实根据任务的执行情况动态生成了。executor从2个到3个,3个到4个,是动态的!再测试一个join的sql。
2024-03-08 14:16:18
1662
原创 【Java Kubernates】Java调用kubernates提交Yaml到SparkOperator
最终我选择了fabric8io,因为我们需要使用k8s的自定义资源sparkApplication,对于自定义资源,kubernetes-client/java需要创建各个k8s对象的pojo,比较麻烦。这里提一下,我在重新使用spark operator的时候,发现原来官方的google的spark operator镜像已经不能拉取了,貌似是google发现它的两个镜像存在漏洞,所以关闭了开源镜像。目前查询框架使用的是trino,但是trino也有其局限性,需要准备一个备用的查询框架。
2024-01-24 15:57:14
1569
2
原创 【大数据HA】keepalived结合haproxy实现高可用的HMS
上一篇实现了haproxy代理后端HMS服务实现高可用。但是对于haproxy还是单点故障,所以需要对haproxy进一步做HA,实现真正的后端服务的HA。要实现haproxy的HA,需要使用到keepalived,使用keepalived是VIP虚拟IP服务,实现故障转移
2024-01-03 16:47:40
1121
原创 【大数据HA】HAProxy实现thrift协议HMS服务的高可用-附Chatgpt协助截图
之前发布了HMS服务,现在需要支持HA,那么需要启动两个HMS(使用docker启动的),并且两个HMS指向同一个mysql数据库,这样在两个HMS之间可以实现HA,所以重新做了一个HMS的服务,在两台虚机上虚机一:wuxdihadl03b,IP 10.40.8.44,部署了HMS和mysql服务虚机二:wuxdihadl04b,IP 10.40.8.45,部署了HMS服务使用trino访问了两个HMS实例,均能访问HMS及后端的minio数据trino的catalog配置trino访问数据。
2023-12-22 15:53:36
1706
原创 【docker】修改docker的数据目录
主节点是分配了较少内存和存储的低配机器,因为我们系统的rancher是用docker镜像启动的,而rancher和docker的默认目录都放在/var/lib下面,而这个/var目录目前只分配10G的存储,导致节点存储报警。因此想修改docker的数据目录,把它移走,过程也很简单。其中第三步可能花费一些时间,可耐心等待。
2023-12-18 11:06:16
1394
1
原创 【Harbor Https】Harbor部署https并配置containerd拉取镜像
新项目,要接手另一个k8s集群,那个集群是kubernates1.24的rke2版本,里面已经不用docker容器了,使用了containerd容器来生成pod,因此需要变化我们以前的docker使用方式。containerd的镜像仓库配置地址在 /etc/rancher/rke2/registries.yaml,修改该文件,将harbor地址,证书配置进去,具体的配置参数和方法可以参考官方文档。修改harbor.yml的https配置,这里我修改了默认端口为1443,并引入服务端证书。
2023-12-08 15:53:10
2978
原创 【大数据】Docker部署HMS(Hive Metastore Service)并使用Trino访问Minio及HDFS
团队要升级大数据架构,需要摒弃hadoop,底层使用Minio做存储,应用层用trino火spark访问minio。在使用trino访问minio时,需要使用hive的metastore service,经过调查HMS(Hive Metastore Service)是可以独立于hive组件的,即不需要整体安装hive,只部署HMS就可以使用trino通过HMS来访问minio。
2023-11-23 11:28:28
4216
原创 【log4j漏洞】log4j 1.x漏洞依赖包解决方案
那么自己的程序中确定是没有引用了,那log4j的引用必定是程序中的第三方依赖包了。如果觉得上面办法比较麻烦,也并不适合自己的场景,还有一个办法,这个办法只能躲过扫描,并未实际解决log4j漏洞问题,那就是将引入的log4j 1.2.17的包中的版本去改掉,直接修改配置中的版本号,就能躲过扫描。对于应用中我们自己写的程序全部替换为新版本。考虑了很久,某时灵光一闪,既然没有log4j的引用类,那么就在程序中创建这些类吧,这样log4j的几个自定义类仍然可以被其他包引用,而应用中又不需要引用log4j的原始包。
2023-05-05 11:27:25
4355
原创 【spark on kubernetes】spark operator访问hdfs,hive
前一篇部署了spark operator,这边介绍spark访问hdfs,hive数据一. 编写代码Java代码,访问hdfs及访问hivepackage com.seagate.client.zyspark;import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import
2021-12-30 11:18:59
10601
原创 【spark on kubernetes】spark operator部署安装 v1beta2-1.2.0-3.0.0
最近开始研究spark on kubernetes,经过调研,spark on kubernetes有两种方案,一种是官方的spark提供的原生支持按照spark-submit方式提交任务,第二种是google基于kubernetes提供的spark operator方案,还是按照kubernetes声明式语法提交任务。一. spark on kubernetes区别 spark on k8s spark on k8s operator 社区支持
2021-12-29 16:53:08
11957
原创 【trino ssl】使用rancher部署trino ssl到kubernestes
这边介绍trino在kubernetes上的安装,这个过程遇到了几个难缠的问题,耗费了3周左右,其实都是小问题,但是在部署的过程中没有考虑到,导致时间拉长了。一.打包镜像第一步使用trino363打包镜像,使用dockerfile,基本上与之前介绍的presto on kubernetes没有变化FROM pythonMAINTAINER 682556RUN useradd --create-home --no-log-init --shell /bin/bash hiveRU..
2021-12-06 09:24:18
11560
原创 【trino https】trino权限验证开启https
一. 背景presto使用的很顺利,项目要求把presto的账号开放出去,供其他用户自己使用。因为目前的presto的jdbc链接是没有口令的,只要拿到这个链接,任何人都可以使用,且无法追踪任务提交的用户,这对presto和集群是一个大的风险,因此需要给presto加上权限控制。因为presto有两个版本,一个是目前的facebook的prestodb,更新到0.265.1,目前我们使用的prestodb0.220,另一个是创始团队重新创建的一个项目叫trino,更新到364版本。在调查了双方的官方安装
2021-12-03 16:26:31
13984
原创 【kubernetes】关于HPA的behavior的说明
项目中在使用hpa来弹性扩缩pod,使用到了hpa的behavior字段,去查询了该字段的用法,在使用中发现与预期的结果不一致,这里记录一下问题及理解。官方的linkPod 水平自动扩缩 | KubernetesPod 水平自动扩缩(Horizontal Pod Autoscaler) 可以基于 CPU 利用率自动扩缩 ReplicationController、Deployment、ReplicaSet 和 StatefulSet 中的 Pod 数量。 除了 CPU 利用率,也可以
2021-10-12 13:29:59
10056
原创 【jvisualVM】jvisualVM监控程序运行时内存变化
<iframe src="//player.bilibili.com/player.html?aid=419341166&bvid=BV1hV411p757&cid=373970191&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
2021-07-21 16:09:31
8444
原创 【算法】一个数去首位去末位解答
逛脉脉的时候,偶然看到一个数学题,觉得挺有意思,来兴致,做了个程序解答解答:package com.seagate.zyproject;public class CalSpecDigit { /** * 一个数字去掉首位是18,去掉末位是60,这个数字是多少? * example(3进制,去首位18,去末位60) * example(8进制,去首位296,去末位485) * @param args */ public static void main(.
2021-07-15 10:27:52
8686
1
原创 【presto on kubernates】presto on kubernates解决方案2
同上篇文章,上篇文章使用了两个镜像presto coordinator和worker,这篇文章展示只用一个镜像,并且动态配置presto参数的情况一。 镜像打包首先删除presto中内存参数,jvm参数的设置文件。保留hive的链接文件(这里hive的链接也可以配置动态,因为hive的链接不会经常变动,所以直接打在镜像里)接下去编写Dockerfile,与前面类似FROM pythonMAINTAINER 682556RUN useradd --create-home -.
2021-04-02 16:41:37
7790
原创 【presto on kubernates】presto on kubernates解决方案
最近研究了kebernates的弹性计算HPA,可以根据CPU和Memory的阈值设定弹出pod的数量。HPA研究过后,组内建议是否可以将presto部署到kubernates集群上,于是便开始着手部署presto到kubernates。一 presto镜像打包镜像打包我分开了coordinate和worker两个镜像coordinate镜像打包:打包presto首先找一个presto的部署包,我之前在测试环境部署了一个presto 0.220,1个master(主节点也充当work.
2021-03-09 11:47:15
8326
原创 【presto】presto通过hive读取hdfs子目录数据问题
团队成员在做存储时遇到一个问题,在hdfs目录写了数据后,使用hive外部表挂载,挂载的目录如下/datamart-kafka-compare-OUT/datamart_kafka_compare_OUT/T_626而实际在T_626目录下还不是文件,还是目录(忽略红框这条,这条是后来从子目录拷贝出来的),如此在presto查询时,使用count查出来数据为0,而hive查询可以查出数据。presto查询略过,数据为0hive查询结果为了测试是否是无法读取子目录的问题,把红框这个
2021-01-21 16:45:11
9828
原创 【session共享】tomcat+redis实现session共享
做了k8s集群服务,免不了后端session共享的问题,此文简单记录tomcat+redis存储session的实现共享的操作。首先说明tomcat8的问题,我原来的tomcat版本是8,在网络上找了很多文章也尝试了操作的很多方法,结果证明tomcat8的redis session共享集成还存在问题,不能成功,因此还是别无他法的改成tomcat7.1)redis服务要起来,这里redis的安装启动不做说明2)下载tomcat+redis集成包,里面有三个jar。下载完成放到/tomcat/lib
2020-11-09 11:19:01
8397
1
原创 【kubernates】kubernates使用ingress部署ingress-nginx访问tomcat
上一篇介绍了单独nginx部署和tomcat部署,然后nginx转向tomcat的部署方式。本文使用k8s的ingress来部署nginx指向tomcat。ingress介绍参考https://www.cnblogs.com/gaofeng-henu/p/12463697.html什么是IngressIngress是kubernetes中用来对集群外部进来的请求进行负载、路由控制的一种机制。通过ingress,可以方便的将集群内的service以http或https方式对外提供服务,而.
2020-11-03 09:44:59
7921
原创 【kubernates】kubernates部署nginx访问tomcat
接上篇,kubernate结合nginx部署service访问tomcat,上一篇已经部署了tomcat的javaweb程序,下面介绍nginx部署及与tomcat的链接一:首先创建nginx镜像首先拉一个nginx的镜像做环境docker pull hub.c.163.com/library/nginx:latest下载一个nginx包,修改里面的nginx.conf#user nobody;worker_processes 1;#error_log logs/e.
2020-10-20 10:28:29
7514
原创 【kubernates】kubernates发布javaweb程序
结合上篇文章,从harbor下载镜像javaweb程序,并使用kubernates来部署镜像。一:kubernates集群kubernates集群已经安装好了,3个主节点,3个node节点Harbor镜像,拉取idat3镜像二:镜像拉取选择一个主节点10.38.150.61进控制台,拉取镜像#登入Harbordocker login -u admin -p Harbor12345 10.38.150.64:8090#拉取镜像docker pul...
2020-10-09 16:56:55
6860
原创 【CI/CD】docker结合gitlab-runner自动发布
最近team内对k8s,docker比较感兴趣,想了解CI/CD相关的内容,我争取了该任务,做了些相关的工作,研究了大概一个礼拜,初步完成了从gitlab代码提交用docker自动发布版本的工作(还未涉及k8s),在此记录一 涉及到的软件版本 版本 介绍 docker 19.03.8 不知道的不用往下看了 git 2.28.0 windows 分布式版本控制系统 gitlab 12.5.5 一个用于仓库管理系统的开源项目,使用Git..
2020-09-16 17:00:43
8293
1
原创 【gitlab-runner】gitlab-runner安装注册到https的gitlab
gitlab是一个代码托管工具,开源。gitrunner是一个持续集成工具(CI CD),只要gitlab代码有提交,gitlab-runner就会自动部署。很方便。gitlab-runner安装过程记录centos7 安装下载安装包sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/v12.8.0/binaries/gitlab-runner-linux.
2020-09-11 14:15:44
10940
1
原创 【d3】d3画图样式图例
以下d3的chart都是本人实践画过的,当然也花费了很多时间和精力,如有需要可以私信我要源码。一 简单拟合大体数据格式,后台计算拟合曲线返回formula,前端画图二 box plot计算出关键参数,画图三 椭圆图此图的画法,其实并不是直接给出的椭圆的关键参数画的。再后台计算椭圆数据时,采用的某个api返回的值是椭圆上的点,因此在前端直接显示的这些点,只要数量够,直观显示的就是椭圆形状。可以看出上图的椭圆中间曲线是空的四 mosic plot..
2020-09-02 16:11:15
7617
原创 【presto】Encountered too many errors talking to a worker node. The node may have crashed or be under
生产设置的presto集群的并发任务是10个,队列200。43台worker,每台分配15G内存。今天由于任务量过大,而且大查询任务很多,导致很多sql跑的很慢,并且有些sql在跑到99%的时候一直pengding,到了timeout时间就抛错了点进去看报错原因,发现以下报错com.facebook.presto.spi.PrestoTransportException: Encountered too many errors talking to a worker n..
2020-07-17 15:12:47
8679
原创 【http post】post传输数据大小
之前知道get请求对url请求长度有限制,post请求没有限制。今天在做程序的时候遇到了这个问题。场景:我需要将前端生成的Svg图片转化base64生成字符串传入后台,后台根据字符串解码生成到PPT里面。附:前端将svg生成图片的工具:saveSvgAsPng.js第三方js。https://github.com/exupero/saveSvgAsPng,后端将数据图片生成PPT使用的是P...
2020-05-07 14:19:27
37422
1
原创 【逆向思维】yarn node label生产共用问题
生产背景presto on yarn已经测试完毕,准备上生产,生产环境严格,不允许有任何影响生产的因素。生产共50个节点,要求是固定10台节点跑presto,且不能影响原有的mapreduce(无标签application)程序,即50台节点也必须都能被mapreduce程序分配到。在之前的测试中,固定10台节点中一台打coordinator标签,9台打worker标签,启动presto。存在...
2020-04-16 10:36:15
763
2
原创 【presto on yarn】问题UnknownHostException和重启节点
一.java.net.UnknownHostException: seacluster在presto on yarn启动之后,在presto-cli控制台访问hive的数据库,不论是show schemas还是show tables都能成功但是真正用sql去查询表的时候,却会报java.net.UnknownHostException: seacluster。这里的seaclu...
2020-03-19 12:26:11
2495
6
原创 【postgres】postgres数据库备份还原
安装过程转载https://blog.youkuaiyun.com/wlwlwlwl015/article/details/52399739数据库备份命令pg_dump -h 10.38.199.220 -U postgres seadoop > seadoop.bak将bak文件移动到目标服务器还原数据库命令psql -h localhost ...
2019-12-20 15:24:06
514
1
原创 【yarn node label】yarn node label设置presto主节点(接上一篇)
接上篇https://blog.youkuaiyun.com/w8998036/article/details/101522048,安装好presto on yarn之后,presto集群的coordinator主节点是由yarn自动分配的,那么每次访问presto的时候地址都会变,在程序中就没法固定presto的连接参数,此问题可以由yarn node label来解决使用node label需要...
2019-10-22 14:50:25
1329
5
kyuubi集成spark时需要访问local s3的包
2024-06-08
tomcat-redis集成包
2020-11-09
presto on yarn安装部署.docx
2020-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人