本地集群

通过几个简单的步骤启动并运行 Flink 本地集群。

Flink 运行在 Linux 和 Mac OS X 上。 注意: Windows 用户可以在 Cygwin 或 WSL 中运行 Flink。

为了运行 Flink,唯一的要求是安装了 Java 8 或 11 的环境。

你可以通过以下命令来检查是否正确安装了 Java:

java -version

如果你安装了 Java 8,则会有类似如下的输出:

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

下载并编译

你可以从我们的仓库之一克隆源代码,例如:

$ git clone https://github.com/apache/flink.git
$ cd flink

# 构建 Flink 可能最多需要 25 分钟
# 你可以通过传递参数 '-Pskip-webui-build'
# 以跳过 web ui 来加速构建

$ mvn clean package -DskipTests -Pfast 

# 这是 Flink 会被安装到的目录
$ cd build-target               

$ ./bin/start-cluster.sh  # 启动 Flink

你可以检查 Dispatcher 的 web 页面 http://localhost:8081 以确认本地集群正常启动并运行着。web 页面应该会显示有一个可用的 TaskManager。

Dispatcher: Overview

你也可以通过检查 logs 目录中的日志文件来确认系统正在运行。

$ tail log/flink-*-standalonesession-*.log
INFO ... - Rest endpoint listening at localhost:8081
INFO ... - http://localhost:8081 was granted leadership ...
INFO ... - Web frontend listening at http://localhost:8081.
INFO ... - Starting RPC endpoint for StandaloneResourceManager at akka://flink/user/resourcemanager .
INFO ... - Starting RPC endpoint for StandaloneDispatcher at akka://flink/user/dispatcher .
INFO ... - ResourceManager akka.tcp://flink@localhost:6123/user/resourcemanager was granted leadership ...
INFO ... - Starting the SlotManager.
INFO ... - Dispatcher akka.tcp://flink@localhost:6123/user/dispatcher was granted leadership ...
INFO ... - Recovering all persisted jobs.
INFO ... - Registering TaskManager ... at ResourceManager

Windows Cygwin 用户

如果你使用 Windows 的 git shell 从 git 仓库安装 Flink,Cygwin 可能会产生类似如下的错误:

c:/flink/bin/start-cluster.sh: line 30: $'\r': command not found

这个错误是因为当 git 运行在 Windows 上时,它会自动地将 UNIX 的行结束符转换成 Windows 风格的行结束符,但是 Cygwin 只能处理 Unix 风格的行结束符。解决方案是通过以下三步调整 Cygwin 的配置,使其能够正确处理行结束符:

  1. 启动 Cygwin shell。

  2. 输入以下命令进入你的用户目录

cd; pwd
这个命令会在 Cygwin 的根目录下返回路径地址。
  1. 使用 NotePad、WordPad 或其他的文本编辑器在用户目录下打开 .bash_profile 文件并添加以下内容:(如果这个文件不存在则需要创建)
export SHELLOPTS
set -o igncr

保存文件并打开一个新的 bash shell。

当执行以下命令后,Flink 会被关闭

$ ./bin/stop-cluster.sh

你可以在打开的 shell 窗口中通过 CTRL-C 来结束进程。

Back to top