Maven 构建 Flink 应用程序的最佳实践(根除各种类冲突/类加载问题)

devtools/2024/9/23 1:44:47/

作为开发者,在构建 Flink 应用程序时的体验真是一言难尽,想必大家都曾遇到过各种 ClassNotFoundException、NoSuchMethodError 以及 Could not find any factory for identifier kafka/jdbc/hive/hudi that implements org.apache.flink.table.factories.DynamicTableFactory in the classpath 这样的错误。坦率地说,Flink 的应用程序构建体验要比 Spark 差很多,在 Flink 上遇到各种类加载问题和 Jar 包冲突的几率非常高,再加上 Flink 的官方文档也差强人意,给开发者带来了很多困惑和糟糕的用户体验。有些扯远了,回到我们的话题:到底如何才能规避构建 Flink 应用过程中的种种问题,实现平滑顺畅的应用部署呢?本文会根据笔者过去的经验介绍一些重要的最佳实践

mavenshadeplugin__uberjar_3">最佳实践(1): 总是使用 maven-shade-plugin 构建 uber-jar


在我以往的经历中,很少使用 maven-shade-plugin,把若干依赖的 Jar 打成一个超大的 uber-jar 并不一种很优雅的做法,且超大的单体 Jar 包在部署时极其不便(每次都要上传或下载大文件)。那么,为什么还用推荐 maven-shade-plugin 来构建 Flink 应用呢?原因并不是因为 uber-jar 本身有什么好处,而是因为 maven-shade-plugin 提供了对依赖包的重命名以及合并 Jar 包元数据的能力,这些处理让生成的 uber-jar 能规避绝大多数的类冲突类加载问题 ,一个典型的


http://www.ppmy.cn/devtools/30789.html

相关文章

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之③:数据分析之二(大小模型协同)

一、概述 随着新一代信息技术在产业数字化中的应用,产生了大量多源多模态信息以及响应的信息处理模式,数据孤岛、模型林立的问题也随之产生,使得业务系统臃肿、信息处理和决策效率低下,面对复杂任务及应用场景问题求解效率低。针…

Vue3使用vue-quill富文本编辑器并实现图片自定义上传替换默认base64格式图片

本文介绍在vue3环境下使用vue-quill富文本编辑器,并实现使用自定义上传接口将图片上传至服务器并保存为img标签src为服务器中图片的地址而不是默认的base64格式图片。从而解决富文本编辑器使用base64导致字段超长问题。 1.安装依赖库 npm install vueup/vue-quill…

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

1 漏洞原理 在Apache Tomcat服务器中,PUT方法通常用于上传文件。攻击者可以通过发送PUT请求,将恶意文件上传到服务器。 当攻击者发送PUT请求时,Tomcat服务器会将请求中的数据写入指定的文件。如果攻击者能够控制文件路径,那么他们…

k8s安装nginx Ingress超详细指南

在本全面的 Ingress 指南中,您将学习如何在 Kubernetes 上设置 Nginx Ingress控制器并使用 DNS 配置 Ingress。 目前有两种 Nginx Ingress 控制器。 kubernetes 社区的 Nginx Ingress 控制器Nginx Inc 开发的 Nginx Ingress 控制器 我们将使用 Kubernetes 社区 N…

24考研双非上岸武汉理工大学电子信息专硕,855考研经验

目录 一、考研择校经验 二、武理考研初试经验 三、武理考研复试经验 一、考研择校经验 我建议学弟学妹们确定院校时没必要一上来就说我一定要考某个院校。其实考哪个学校是要在考研备考的过程中慢慢探索,慢慢研究的,不过最晚9月初一定要确定院校了&a…

爬虫 - 基于requests进行二次开发

项目地址 https://github.com/markadc/wauo.git持续更新中… 演示 # -*- coding: utf-8 -*-from wauo import WauoSpider, Responses WauoSpider(default_headers{Cookie: Your Cookies}) url https://www.baidu.com resp: Response s.send(url)print(resp) print(resp.r…

ubuntu20.04安装RabbitMQ 3.11.19+Erlang 25.3.1

1、检查RabbitMQ、Erlang版本 Erlang Version Requirements | RabbitMQ 2、ubuntu20.04对应的是 focal 3、下载安装Erlang 下载地址:http://packages.erlang-solutions.com/erlang/debian/pool/ sudo dpkg -i esl-erlang_25.3-1~ubuntu~focal_amd64.deb sudo apt…

解决Git提交失败的问题:配置user.name和user.email

文章目录 一、场景描述二、原因分析三、解决办法1、全局配置2、单个项目配置3、验证配置 四、总结 在软件开发过程中,使用Git进行版本控制是必不可少的。然而,有时候在用Visual Studio Code提交代码时可能会遇到提交失败的情况,其中一个常见的…