IDEA中搭建flink开发环境,看这一篇就够了,亲测有效
在使用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 = new Configuration();
configuration.setString("rest.port","8082");
StreamExecutionEnvironment env =
StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration);
此时在此启动应用程序,然后访问如下地址:http://localhost:8082
哈哈,到这里终于成功了,接下来就可以开心的编写代码了。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击