我们的开发系统是 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.sh
或 stop-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
嗯,够用。还需要安装 Scala 插件。
如果我们需要在终端里通过命令打开项目,可以"Tools -> Create Command-Line Launcher",直接”OK“,就可以在终端相应的目录下输入idea .
,打开项目。
👊 收官~
本文由 Chakhsu Lau 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。