Flink Job 开发工具链配置
in Tutorial with 0 comment
Flink Job 开发工具链配置
in Tutorial with 0 comment

我们的开发系统是 macOS,打算使用 Scala 作为开发语言,SBT 作为构建工具,IDEA 作为编辑器去配置和初始化我们的 flink job 的开发工作。

环境配置

需要自行提前在 macOS 上安装 homebrew

Java 环境配置

安装 Java8

brew tap caskroom/versions
brew cask install java8
$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

sbt 配置

安装 sbt

brew install sbt

Scala 配置

flink版本为1.7.1,推荐使用scala2.11版本,虽说1.7.1的flink版本支持scala 2.11和2.12,但是在实践中发现,当使用scala 2.12版本时,运行程序会报错java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;,将scala版本改为2.11后程序可正常运行。查阅网上资料,有说是jdk版本和scala版本适配问题导致的,目前未深入分析,具体原因不明。

brew install scala@2.11
brew unlink scala
brew link scala@2.11 --force

因为安装了 zsh ,所以把变量配置配置到 ~/.zshrc,如果没有 zsh 可以配置到/etc/profile

echo 'export PATH="/usr/local/opt/scala@2.11/bin:$PATH"' >> ~/.zshrc
$ scala -version
Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL

Flink 配置

本地安装 flink 用于测试

检查 brew head 的 flink 基本信息,最好是 1.7.1,目前最新版也是该版本,生产集群也是这个版本,开发与生产软体版本要求一致,避免兼容问题。

$ brew info apache-flink
apache-flink: stable 1.7.1, HEAD
Scalable batch and stream data processing
https://flink.apache.org/
Not installed
From: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git/Formula/apache-flink.rb
==> Requirements
Required: java = 1.8 ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 923 (30 days), 3,307 (90 days), 9,128 (365 days)
install_on_request: 907 (30 days), 3,254 (90 days), 8,911 (365 days)
build_error: 0 (30 days)

安装 apache-flink

brew install apache-flink

查找安装路径

$ cat /usr/local/bin/flink
#!/bin/bash
exec "/usr/local/Cellar/apache-flink/1.7.1/libexec/bin/flink" "$@"

嗯,路径在/usr/local/Cellar/apache-flink/1.7.1/libexec/bin

这样就可以执行 start-cluster.shstop-cluster.sh ,可以很方便地管理本地的 flink 了

项目初始化

参考官方推荐的方式

flink job 开发配置

我的工作目录在 Work,请根据需要自行切换。

cd ~/Work
sbt new tillrohrmann/flink-project.g8

这将提示您输入几个参数(项目名称,flink版本...),然后从flink-project模板创建一个Flink项目。需要 sbt >= 0.13.13 才能执行此命令。

执行后根据需要填入信息,scala 和 flink 版本不需要填写,直接回车:

[info] Set current project to learn (in build file:/Users/air/Works/learn/)

A Flink Application Project Using sbt

name [Flink Project]: bi-pedestrian-analyzer
organization [org.example]: com.tuputech
version [0.1-SNAPSHOT]: 0.1
scala_version [2.11.12]:
flink_version [1.7.1]:

Template applied in /Users/air/Works/learn/./bi-pedestrian-analyzer

这样我们就创建了一个名为 bi-pedestrian-analyzer 的 flink scala 项目。

IDEA 配置

下载安装 CE 版本 https://www.jetbrains.com/idea/download/#section=mac

1550223215305-f8f2acb2-dd20-4e37-909a-9058dd43c17d-image-resized.png

嗯,够用。还需要安装 Scala 插件。

1550223558383-2198ffe7-3ae3-48be-a0dc-92a4d121e389-image.png

如果我们需要在终端里通过命令打开项目,可以"Tools -> Create Command-Line Launcher",直接”OK“,就可以在终端相应的目录下输入idea .,打开项目。

1550287887818-4ce70fb0-bee7-4cd9-b4fd-b7a7a8fa8e93-image.png


👊 收官~

Responses