在使用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的启动端口:
Configuration configuration =newConfiguration();
configuration.setString("rest.port","8082");StreamExecutionEnvironment env =StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration);
此时在此启动应用程序,然后访问如下地址:http://localhost:8082
哈哈,到这里终于成功了,接下来就可以开心的编写代码了。
版权归原作者 wind_huise 所有, 如有侵权,请联系我们删除。