Flink升级到1.4版本遇到的坑
Flink 1.4没出来以前,一直使用Flink 1.3.2,感觉还算稳定,最近将运行环境升级到1.4,遇到了一些坑:
1.需要将可运行程序,基于1.4.0重新编译一次
2.对比了一下flink-conf.yml中的配置,发现一处不同点:
# The port under which the web-based runtime monitor listens.
# A value of -1 deactivates the web server.
1.3.2:jobmanager.web.port: 8081
1.4.0:web.port: 8081
1.4.0 少了前面的“jobmanager”,但是查看官网1.4.0的文档,配置项却是:jobmanager.web.port(https://ci.apache.org/projects/flink/flink-docs-release-1.4/ops/config.html)
查看源代码,原来是两个都行,不过后面应该建议都用web开头的,改了还不少:

3.在Configuration的Common Options部分,1.4多了如下的东西:
classloader.resolve-order: Whether Flink should use a child-first ClassLoader when loading
user-code classes or a parent-first ClassLoader. Can be one of parent-first or child-first. (default: child-first) classloader.parent-first-patterns: A (semicolon-separated) list of patterns that specifies
which classes should always be resolved through the parent ClassLoader first.
A pattern is a simple prefix that is checked against the fully qualified class name.
By default, this is set to java.;org.apache.flink.;javax.annotation;org.slf4j;org.apache.log4j;org.apache.logging.log4j;ch.qos.logback.
If you want to change this setting you have to make sure to also include the default patterns in your list of patterns if you want to keep that default behaviour.
Flink程序,原来在1.3.2上跑着没问题,换到1.4后,总是报:
java.lang.LinkageError: loader constraint violation:
loader (instance of org/apache/flink/runtime/execution/librarycache/FlinkUserCodeClassLoaders$ChildFirstClassLoader)
previously initiated loading for a different type with name "scala/collection/Iterable"
查看发布说明,才知道默认类加载顺序变了:
https://flink.apache.org/news/2017/12/12/release-1.4.0.html

在flink-conf.yml中配置了
classloader.resolve-order: parent-first
后问题解决
所以每个版本的发布说明,得仔细看清楚。
Flink升级到1.4版本遇到的坑的更多相关文章
- 升级cocoapods1.1.0版本遇到的坑
先容我吐槽两句, 最近写Swfit3.0, 要用到一些框架, 然后就用cocoapods嘛, 结果说要cocoapods1.1.0版本才行, 而自己的是cocoapods1.0.1版本的, 所以就想着 ...
- centos7 升级内核到最新版本
centos7 从问世以来,官网提供的镜像始终是3.10 版本,该版本最大的一个问题是对硬件驱动(尤其是无线网卡)的支持不是很好,本人亲测>5种机型,无线网卡均无法正常使用,如果是非主流机型,手 ...
- Xcode 升级成Xcode 8 版本以后,出现 Signing for "sqlite3--test" requires a development team. 问题的解决
升级xcode到8版本以后,工程文件会出现以下提示 解决办法就是,点击Team,添加自己的appid,然后选择自己的appid即可, 注意: 这里不需要开发者账号,自己的 apple id,就可以”:
- CMS .NET 程序框架 从2.0/3.5升级到4.0 版本后 需要调整的地方
问题一: document.forms1.action 不可使用 需要修改程 document.forms[0] .NET 程序框架 从2.0/3.5升级到4.0 版本后,document.forms ...
- 无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539) 解决方案
使用SQL2012附加一个数据库时报出了以下错误:“无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539).不能打开与此版本的 sqlserver.exe 不兼 ...
- Ubuntu 14.0 升级内核到指定版本
1.卸载现有内核sudo apt purge linux-headers-* linux-headers-*-generic linux-image-*-generic linux-image-ext ...
- MySQL升级-5.6升级到5.7版本&切换GTID模式
目前未在生产环境中升级过数据库版本,倒是在测试环境跟开发环境升级过. 可以通过mysqldump sql文件进行升级,也可以通过mysql_upgrade升级,前者耗时较长,且 ...
- 如何升级centos到最新版本
本文将教你如何升级centos到最新版本.centos中“update”命令可以一次性更新所有软件到最新版本.注意:不推荐使用update的y选项,-y选项会让你在安装每项更新前都进行确认(译者注:这 ...
- centos7 docker升级到最新稳定版本
原文:centos7 docker升级到最新稳定版本 一.前言 docker的版本分为社区版docker-ce和企业版dokcer-ee社,区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外 ...
随机推荐
- [转载] Mahout
转载自http://hadoop.readthedocs.org/en/latest/Hadoop-Mahout.html# Mahout 12.1 简介 Mahout为推荐引擎提供了一些可扩展的机器 ...
- Python之作用域
作用域测试例子: >>> a = 10 >>> def test(): ... a = 20 ... print a ... >>> a 10 & ...
- 【S】SQL SERVER检查临时表占用空间情况
--检查已标记为需要删除的临时表select * from T_BAS_TEMPORARYTABLENAME; --所有系统创建的临时表及视图SELECT * FROM sys.tables WHER ...
- tensorflow 从入门到摔掉肋骨 教程二
构造你自己的第一个神经网络 通过手势的图片识别图片比划的数字:1) 现在用1080张64*64的图片作为训练集2) 用120张图片作为测试集 定义初始化值 def load_dataset(): ...
- 发现AspNet.Core版本控制库Bug一枚,你还想入坑?
我,博客写作小白一枚,注册账号多年却未曾留下只言片语,在潜水的这些年里从大家的博客中收获了很多新的知识忽觉惶恐心有不安,是时候给大家分享一些我的经验和教训了.嗯嗯,实话告诉大家前面的话的都是来凑字数的 ...
- react 体验 react与vue的比较
用了 vue 大半年了,不过我在2016年暑假的时候就看到了 react 这个项目,有点想学习一番,之前学习的都是基础语法和一些基础用法吧,总的来说 mvvm 框架确实都很相似,会一个就可以了; 今天 ...
- python win32 简单操作
源由 刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定:后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~ 下载 要注意Pyt ...
- php垃圾回收
php所有的变量都存在一个zval的结构里面,通过refcount和is_ref来存储变量的引用关系.refcount是变量的引用次数,is_ref是变量是否被引用,当is_ref=0的时候refco ...
- js笔记(制作一个简单的计数器)
首先编写静态页中的按钮: <input id="result" type="button" value="该程序已经运行了0秒!"/ ...
- 新一代 CI 持续集成工具 flow.ci 正式开源
很高兴地宣布 flow.ci 在 Apache-2.0 协议下正式开源了.flow.ci 是国内首套开源持续集成(CI) 解决方案,帮助企业团队实现开发流程(build-test-deploy)自动化 ...