Flink独立集群

时间:2019-10-18 09:12:57

标签: cluster-computing apache-flink

我正在尝试设置一个简单的独立flink集群。我遵循了these的说明。我有两种情况:

1)公司网络中有1个主设备和2个从设备,根据IT服务,这使我可以访问任何端口(我对此表示怀疑)。

2)1个主设备和1个从属设备,它们都在我的家庭网络中。

在两种情况下,我都可以在 master / job manager 中运行start-cluster.sh脚本后访问Flink Web UI。但是,我看不到任务管理器。在方案2中,只有在 master和 slave 中都运行start-cluster.sh时,我才能使它工作(请参阅任务管理器)(没有描述)在本教程中),只有主服务器可以对从属服务器进行无密码访问(仍然使用密码)(请参阅下面的问题,找出我为什么要提及此问题)。即使在所有节点(主节点和从节点)上运行start-cluster.sh,我仍然看不到方案1中的任务管理器。

基于这些,我有4个问题:

Q1)我是否需要在每台计算机(即主机和从机)上运行start-cluster.sh脚本?

Q2)文档建议需要无密码的ssh。我按照教程进行操作,虽然能够做到这一点,但是当我启动群集以连接到每个从属服务器时,它仍然要求我输入 passphrase 。这是无密码连接的外观还是我应该尝试其他方法?

Q3)我是否需要我的从属服务器能够使用ssh密码少的主服务器,或仅使用主服务器将无密码的服务器连接到从属计算机?

Q4)如果我需要让IT服务为我打开flink端口,请确认我只需要它们打开在参数{中定义的8081(对于Web UI)和6123(默认值)) {1}}在我的flink-conf.yaml文件中?

方案1的配置:3台运行Open JDK 8的Ubuntu Linux计算机

方案2的配置:2台运行Oracle JDK 8的Mac OS X 10

在两种情况下,我都使用Apache Flink 1.7.1

1 个答案:

答案 0 :(得分:1)

我设法让主人去看任务经理。问题出在Java安装上。尽管我很确定自己已在所有机器上安装了openjdk 8,并将它们的PATH和JAVA_HOME变量设置为指向同一JDK的所有机器,但似乎仅通过添加env.java.home参数即可解决问题flink-conf.yaml中的内容以明确指向我的JDK路径(例如/usr/lib/jvm/java-8-openjdk-amd64

原来,我现在可以回答一些问题:

Q1)不,start-cluster.sh应该仅在主服务器上执行。

Q2)我切换到没有密码短语的ssh连接(只需重新生成密钥并在要求输入密码短语为空时按Enter键)。虽然我不知道是否需要

Q3)不,只有主服务器才能对从属服务器进行无密码访问。

Q4)主站打开并侦听端口8081和6123。它还打开了更多端口(每个从站是一个端口?)。如果您执行sudo lsof -i -P -n,则会发现每次更改时还会打开哪些其他端口。