Flink on Zeppelin (1) - 入门篇

Flink 在国内阿里巴巴的带领下发展的如火如荼。一直有人在 Zeppelin 社区问能否在 Zeppelin 里使用 Flink。现在终于有了进展了,从 Zeppelin 0.9 开始将正式支持 Flink 1.10。Flink 是一个批流统一的计算引擎,本文将从第一个 wordcount 的例子为起点来讲述如何在 Zeppelin 中使用 Flink。

准备工作

在 Zeppelin 中使用 Flink,需要下载最新的 Zeppelin 0.9.0 以及 Flink 1.10 (本文发布时,Zeppelin 0.9.0 和 Flink 1.10 都还没正式发布)。想要尝鲜的用户可以加入下面的钉钉群下载预览版。

Flink on Zeppelin (1) - 入门篇_第1张图片

除了下载 Flink 的标准 release,如果你要使用 Flink on Yarn 模式或者连接 Hive,那么你还需要下载其他 Flink 组件。

Flink on Yarn 需要的组件:

  • flink-hadoop-compatibility (https://repo1.maven.org/maven2/org/apache/flink/flink-hadoop-compatibility_2.11/1.9.1/flink-hadoop-compatibility_2.11-1.9.1.jar)

  • flink-shaded-hadoop-2-uber  (https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-7.0/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar)

连接 Hive 需要的组件:

  • flink-connector-hive 

  • hive-exec

使用 Pyflink 需要的组件:

  • flink-python

这是我的 lib 目录下的所有 jar (也可以参考 Flink 官方文档,https://ci.apache.org/projects/flink/flink-docs-master/dev/table/hive/scala_shell_hive.html)

Flink on Zeppelin (1) - 入门篇_第2张图片

配置 Zeppelin + Flink

接下来是配置 Zeppelin 和 Flink。首先解压缩 Zeppelin 包之后,cd 到 Zeppelin 目录运行下面运行这个命令启动 Zeppelin。(注明:请使用 Mac OS 或者 Linux 系统,不要使用 Windows)

bin/zeppelin-daemon.sh start
br

然后在浏览器里打开 http://localhost:8080 就可以看到 Zeppelin 页面了。

Flink on Zeppelin (1) - 入门篇_第3张图片

就下来就需要配置 Flink Interpreter。在 Zeppelin 中可以使用 3 种不同的 Flink 集群模式。

  • Local

  • Remote

  • Yarn

下面将分别说明如何配置 Flink Interpreter 来运行这 3 种模式。

Local 模式

Flink 的 Local 模式会在本地创建一个 MiniCluster,适合做 POC 或者小数据量的试验。必须配置 FLINK_HOME 和 flink.execution.mode。

Flink on Zeppelin (1) - 入门篇_第4张图片

Remote 模式

Flink 的 Remote 模式会连接一个已经创建好的 Flink 集群,一般是 Flink standalone 集群。除了配置 FLINK_HOME 和 flink.execution.mode 外,还需要配置 flink.execution.remote.host 和 flink.execution.remote.port 来指定 JobManager 的地址。

Flink on Zeppelin (1) - 入门篇_第5张图片

YARN 模式

Flink 的 Yarn 模式会在 Yarn 集群中创建 Flink Cluster。除了配置 FLINK_HOME 和  flink.execution.mode 还需要配置 HADOOP_CONF_DIR,并且要确保 Zeppelin 这台机器可以访问你的 Hadoop 集群。

Flink on Zeppelin (1) - 入门篇_第6张图片

验证 Flink Interpreter

完成了上面的配置之后,可以运行下面的 wordcount 代码来验证 Flink Interpreter 是否能正常工作。

Flink on Zeppelin (1) - 入门篇_第7张图片

如上图所示,你可以看到 WordCount 的输出,以及右上角的 Flink JOB 链接,点击这个链接你可以看到 Flink Web UI 中关于这个 WordCount Job 的详细信息。

这就是如何在 Zeppelin 运行 Flink WordCount 的过程,如果有碰到任何问题,请加入下面这个钉钉群讨论。后续我们会有更多 Tutorial 的文章,敬请期待。

Flink on Zeppelin (1) - 入门篇_第8张图片


关注 Flink 中文社区,获取更多技术干货

你也「在看」吗?????

你可能感兴趣的:(Flink on Zeppelin (1) - 入门篇)