导读:Apache Flink是一个框架和分布式处理引擎,用于对无边界和有边界的数据流进行有状态的计算。官方文档虽然很详细,但想对Flink进一步深入了解则需要阅读Flink的源码。本文主要讨论Flink源码获取编译,及可能会遇到的问题及解决方案。
//使用git从github拉取
https://github.com/apache/flink/
由于从GitHub拉取比较慢,解决的方式有多种。这里列举一种借助gitee的方式:
1、登录gitee -- 创建仓库 -- 导入已有仓库,耐心等待一段时间。
2、将代码从gittee clone到本地。
因Flink具有用scala编写的API,因需要配置Scala插件及Scala SDK。
配置Scala IDEA插件:File -- Settings -- Plugins -- Maketplace -- 搜索Scala -- install
https://www.scala-lang.org/download/ //从官网下载scala的SDK
配置Scala SDK:File -- Project Structure -- Platform Settings -- Global Libraries -- +号 -- 选择Scala SDK
这里选择Brown--指定刚下好Scala SDK 目录(解压)
mvn clean install -DskipTests -Drat.skip=true
问题1:由于flink-runtime-web模块引入了frontend-maven-plugin依赖,并安装了node和部分依赖组件,会因网络原因导致 [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:install-node-and-npm (install node and npm)
解决方式:
//修改 flink-runtime-web 的 pom,xml 文件镜像为淘宝镜像
<nodeDownloadRoot>http://npm.taobao.org/mirrors/node/</nodeDownloadRoot>
<npmDownloadRoot>http://npm.taobao.org/mirrors/npm/</npmDownloadRoot>
问题2:Could not resolve dependencies for project org.apache.flink:flink-avro-confluent-registry:jar:1.6.2:
解决方式:
//1、下载kafka-schema-registry-client-4.1.0.jar
http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/4.1.0/kafka-schema-registry-client-4.1.0.jar
//2、手动安装
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=4.1.0 -Dpackaging=jar -Dfile=你所存放的目录/kafka-schema-registry-client-4.1.0.jar
//3、继续编译
mvn clean install -DskipTests -Drat.skip=true -rf :flink-avro-confluent-registry
感谢您的阅读,如果喜欢本文欢迎关注和转发,本头条号将坚持原创,持续分享IT技术知识。对于文章内容有其他想法或意见建议等,欢迎提出共同讨论共同进步