在使用flink进行应用开发的时候,通常都是将开发的应用程序,提交到flink集群中,但是这样对应用程序开发调试很不方便,所谓磨刀不误砍柴工,下面我整理一个在mac上使用idea开发flink程序的配置教程,具体如下。
核心依赖配置
添加flink应用程序开发必要的依赖:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.7.2</version>
<scope>provided</scope>
</dependency>
此时启动开发的应用程序,会报错,报错信息如下:
报错原因主要在于应用提交后,无法启动本地flink框架。需要添加flink启动必须的依赖,该依赖是:flink-dist_2.11-1.11.2.jar,依赖的版本取决于下载flink包的版本,下载链接参考:https://www.apache.org/dyn/closer.lua/flink/flink-1.11.6/flink-1.11.6-bin-scala_2.11.tgz。
然后在lib下可以找到该依赖,并把该依赖添加到应用程序的classpath下,具体操作方式如下图:
改依赖添加之后,flink应用程序就可以启动起来。
启动日志配置
截止到目前,可以在idea上启动flink应用程序,但是还不够完美,为了更好的观察flink启动过程,最好能将flink的启动过程的日志打印出来,此时需要在应用程序中对flink的日志进行配置,具体配置如下:
1.添加依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
2.logback.xml
<configuration>
<property name="CONSOLE_LOG_PATTERN"
value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%blue(%thread)] %highlight(%-5level) %green(%logger{60}) %blue(%file:%line) %X{sourceThread} - %cyan(%msg%n)"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="console"/>
</root>
<logger name="akka" level="INFO">
<appender-ref ref="console"/>
</logger>
<logger name="org.apache.kafka" level="INFO">
<appender-ref ref="console"/>
</logger>
<logger name="org.apache.hadoop" level="INFO">
<appender-ref ref="console"/>
</logger>
<logger name="org.apache.zookeeper" level="INFO">
<appender-ref ref="console"/>
</logger>
<logger name="org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline" level="ERROR">
<appender-ref ref="console"/>
</logger>
</configuration>
此时再次启动应用程序,进行观察验证:
web ui配置
开发过flink程序的老铁都知道,flink提供了一套web ui,可以很方便的查看应用程序的执行状态,应用的配置信息等。
那么在idea中启动的应用程序可以访问web ui吗?答案是肯定的,不过需要在应用程序中配置web ui的启动端口:文章来源:https://www.toymoban.com/news/detail-409576.html
Configuration configuration = new Configuration();
configuration.setString("rest.port","8082");
StreamExecutionEnvironment env =
StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration);
此时在此启动应用程序,然后访问如下地址:http://localhost:8082
哈哈,到这里终于成功了,接下来就可以开心的编写代码了。文章来源地址https://www.toymoban.com/news/detail-409576.html
到了这里,关于IDEA中搭建flink开发环境,看这一篇就够了,亲测有效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!