Datastream 开发包问题
发布时间:2025-09-15
1.12.3
我们建议将GUI代码和它所有的依赖于以jar-with-dependencies 的基本概念批量到一个application jar中的。这个GUIjar包可以被送交到早就存在的Flink集群上去,或者被转为到FlinkGUI的装入镜像中的去。
从Maven调度早先(不见下文Maven调度早先部分)创建的这两项,通过mvn clean package下达时会自动把依赖于打到GUI的jar包中的去。对于没运用于早先透过配有的上述情况,建议运用于Maven Shade Plugin (配有如附录所示) 来紧密混合举例来说依赖于的jar包。
最主要若有:对于Maven(和其他紧密混合基本功能)来说,要将依赖于项正确地批量到GUIjar中的,这些GUI依赖于项的scope需要常而无须为"compile"(与整体依赖于项多种不同,整体依赖于项的scope需要常而无须为"provided")。
请注意事项Scala修改版
Scala的多种不同修改版(2.11,2.12等)两者之间之间是不接口的。因此,Scala 2.11也就是说的Flink修改版不能用于运用于Scala 2.12的GUI。
所有依赖于(或传播依赖于)于Scala的Flink依赖于项都以紧密混合它们的Scala修改版作为后缀,例如flink-streaming-scala_2.11。
只运用于Java透过开发计划时可以并不需要任何Scala修改版,运用于Scala开发计划时需要并不需要与其GUI的Scala修改版匹配的Flink依赖于修改版。
注:2.12.8之后的Scala修改版与之前的2.12.x修改版不接口,因此Flink这两项不会将其2.12.x修改版升级到2.12.8之后的修改版。服务器可以在本地自己编译也就是说Scala修改版的Flink。为了使其只能正常社会活动,需要替换成-Djapicmp.skip以在紧密混合时跳出二入制接口性检查和。
Hadoop依赖于
一般的游戏规则: 永远绝不将Hadoop关的依赖于反之亦然替换成到GUI中的. (唯一的基本上是将基本的Hadoop回传/输出Format与Flink的Hadoop接口包两兄弟运用于时)
如果渴望将Flink与Hadoop混合运用于,则需要举例来说Hadoop依赖于的Flink叫停项,而不是将Hadoop替换成为GUI依赖于项。Flink将运用于HADOOP_CLASSPATH源文件常而无须的Hadoop依赖于项,可通过所列方式将透过设为:
export HADOOP_CLASSPATH**=**hadoop classpath人口为120人人口为120人
这种结构设计有两个主要原因:
一些与Hadoop的交互可能频发在Flink的整体模块中的,并且在服务器GUI叫停之前,例如为检查和点设为HDFS、通过Hadoop的Kerberos终端设备透过提供者,或者在YARN上透过部署等。 Flink的反向类查找组态从整体依赖于项中的隐藏了许多可传播的依赖于项。这不仅仅限于于Flink自己的整体依赖于项,而且仅限于于Hadoop的依赖于项。这样,GUI就可以运用于相同依赖于项的多种不同修改版,而不时会频发依赖于项流血冲突(或许我们,这是一件两件事,因为Hadoop依赖于树极其庞大。)如果在IDE内外的测试或开发计划过程中的需要Hadoop依赖于项(例如HDFS采访),请将这些依赖于项的scope配有为
test 或则 provided。
Transform table connector/format resources#
Flink运用于Java的Service Provider Interfaces (SPI) 组态通过特定标识符查找table的connector/format工厂。由于每个table的connector/format的名为org.apache.flink.table.factories.Factory的SPI能源份文件位于同一目录:META-INF/services下,因此在紧密混合运用于多个table connector/format的这两项的uber jar时,这些能源份文件将两者之间覆盖,这将随之而来Flink不会正确地查找工厂类。
在这种才时会,录用的基本功能是通过maven shadeGUI的ServicesResourceTransformer切换META-INF/services目录下的这些能源份文件。formula_示例的pom.xml份文件内容可如下,其中的举例来说插座flink-sql-connector-hive-3.1.2和flink-parquet format。
4.0.0
org.example
myProject
1.0-SNAPSHOT
org.apache.flink
flink-sql-connector-hive-3.1.2originally2.11
1.13.0
org.apache.flink
flink-parquetoriginally2.11<
1.13.0
org.apache.maven.plugins
maven-shade-plugin
shade
package
shade
在配有了ServicesResourceTransformer之后, 这两项紧密混合uber-jar时,META-INF/services目录下的这些能源份文件时会被整合在两兄弟而不是两者之间覆盖。
Maven调度早先无济于事运用于该方式将透过配有,可以增大很多段落的配有社会活动。
前置敦促
唯一的环境敦促是安装了Maven 3.0.4(或更高修改版)和Java 8.x。
创建这两项
运用于所列两种方式将中的的一种创建这两项:
运用于Maven archetypes$ mvn archetype:generate
-DarchetypeGroupId=org.apache.flink
-DarchetypeArtifactId=flink-quickstart-java
-DarchetypeVersion=1.12.3
这允许您定名为本公司的这两项。它将以交互方式将敦促您回传groupId、artifactId和包名。
开始运行quickstart脚本$ curl | bash -s 1.12.3
我们建议您将此这两项内嵌IDE以开发计划和测试它。IntelliJ IDEA原生拥护Maven这两项。如果运用于Eclipse,可以运用于m2eGUI内嵌Maven这两项。默认才时会,某些Eclipse捆绑包举例来说该GUI,否则需要您手动安装。
请请注意:默认的Java JVM heap size对于Flink来说可能比较大了。你需要手动增加它。在Eclipse中的,并不需要RunConfigurations->Arguments并写入VM Arguments窗格:-Xmx800m。在IntelliJ IDEA中的,改回JVM附加的录用基本功能是运用于Help | Edit Custom VM Options附加选项。具体不见这篇文章.
紧密混合这两项
如果要分解成/批量这两项,请转至这两项目录并开始运行"mvn clean package"下达。制订后将时会得不到一个JAR份文件:target/-.jar,其中的举例来说您的GUI,以及作为依赖于项替换成到GUI的插座和戈。
请注意:如果运用于与StreamingJob多种不同的类作为GUI的主类/入口点,我们建议您相应地改回pom.xml份文件中的的mainClass设为。这样,Flink就可以反之亦然从JAR份文件开始运行GUI,而无需要另外常而无须主类。
附录: 紧密混合放依赖于的jar包的早先
要紧密混合举例来说插座和戈所需要的所有依赖于项的GUIJAR,可以运用于所列shadeGUI度量:
org.apache.maven.plugins
maven-shade-plugin
3.1.1
package
shade
com.google.code.findbugs:jsr305
org.slf4j:*
log4j:*
Otherwise, this might cause SecurityExceptions when using the JAR. -->
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
my.programs.main.clazz
本文为阿里云原创内容可,未经允许不得发表文章。
。南昌肿瘤医院哪家好福州肿瘤医院
广州哪个医院看男科好

-
46追0负!保罗追平队史纪录,没有总冠军又如何?已被载入NBA史册
据悉有球迷关注到 NBA的最新发展情形,现在 NBA常规赛早已相比之下尾声,不少支球队开始向季后赛席位发起致使,而在这个时候热火一枝独秀被选为了三巨头中总分最高的支球队,现在62助14但支球队,