Datastream 开发包问题
发布时间:2025-09-15
flink-connector-kafka_2.11
1.12.3
我们建议将使用者界面代码和它所有的相反以jar-with-dependencies 的多种形式一并内到一个application jar当中。这个使用者界面jar包内可以被建议书到已经假定的Flink集群上去,或者被转为到Flink使用者界面的容探头链接当中去。
从Maven施作早先(见下文Maven施作早先部分)创始人的工程项目,通过mvn clean package命令时会自动把相反打到使用者界面的jar包内当中去。对于没有用到早先完成可用的似乎,建议用到Maven Shade Plugin (可用如附录标明) 来协作构成相反的jar包内。
关键性查看:对于Maven(和其他协作原理)来说,要将相反项确实一并内到使用者界面jar当中,这些使用者界面相反项的scope才时会以外为"compile"(与一个中心相反项不尽不同,一个中心相反项的scope才时会以外为"provided")。
注意事项Scala修改版
Scala的不尽不同修改版(2.11,2.12等)互为之间是不并行的。因此,Scala 2.11涉及联的Flink修改版不能用于用到Scala 2.12的使用者界面。
所有相反(或传输相反)于Scala的Flink相反项都以协作它们的Scala修改版作为前缀,例如flink-streaming-scala_2.11。
只用到Java完成技术开发时可以为了让任何Scala修改版,用到Scala技术开发时必均需为了让与其使用者界面的Scala修改版匹配的Flink相反修改版。
注:2.12.8之前的Scala修改版与早先的2.12.x修改版不并行,因此Flink工程项目无法将其2.12.x修改版升级到2.12.8之前的修改版。使用者可以在本地自己编译涉及联Scala修改版的Flink。为了使其能够正常就是指导工作,必均需附加-Djapicmp.skip以在协作时跳过二进制并行性检验。
Hadoop相反
一般的的系统: 忘记不要将Hadoop涉及相反如此一来附加到使用者界面当中. (唯一的亦然是将现有的Hadoop可用/输出Format与Flink的Hadoop并行包内一起用到时)
如果希望将Flink与Hadoop结合用到,则必均需构成Hadoop相反的Flink启动项,而不是将Hadoop附加为使用者界面相反项。Flink将用到HADOOP_CLASSPATH生态环境变量以外的Hadoop相反项,可通过此表方式为完成设为:
export HADOOP_CLASSPATH**=**hadoop classpath``
这种设计有两个主要原因:
一些与Hadoop的交互似乎愈演愈烈在Flink的一个中心计算机系统当中,并且在使用者使用者界面启动早先,例如为检验点设为HDFS、通过Hadoop的Kerberos令牌完成用户端,或者在YARN上完成作战等。 Flink的反向类呼叫必要从一个中心相反项当中隐藏了许多可传输的相反项。这不仅一般来说于Flink自己的一个中心相反项,而且一般来说于Hadoop的相反项。这样,使用者界面就可以用到不同相反项的不尽不同修改版,而就时会愈演愈烈相反项冲突(相信我们,这是一件大事,因为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 shadePDF的ServicesResourceTransformer转换成META-INF/services第一版下的这些水资源明文。给定下例的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.2__2.11
1.13.0
org.apache.flink
flink-parquet__2.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,可以用到m2ePDF内嵌Maven工程项目。这样一来似乎下,某些Eclipse捆绑包内构成该PDF,否则必均需您手动加装。
请注意:这样一来的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,其当中构成您的使用者界面,以及作为相反项附加到使用者界面的适配探头和库里。
注意:如果用到与StreamingJob不尽不同的类作为使用者界面的主类/当中庭点,我们建议您相应地更动pom.xml明文当中的mainClass设为。这样,Flink就可以如此一来从JAR明文接入使用者界面,而无均需另外以外主类。
附录: 协作偷偷地相反的jar包内的早先
要协作构成适配探头和库里所均需的所有相反项的使用者界面JAR,可以用到此表shadePDF定义:
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但支球队,