我正在尝试设置一个简单的独立flink集群。我遵循这些指示。我有两种情况:
1) 1个主机和2个从机位于公司网络中,根据it服务允许我访问任何端口(我对此表示怀疑)。
2) 一个主设备和一个从设备都在我的家庭网络中。
在这两种情况下,在主/作业管理器中运行start-cluster.sh脚本后,我都可以访问flink web ui。但是,我看不到任务管理器。在场景2中,只有在master和slave中运行start-cluster.sh(这在教程中没有描述),并且只有master具有对slave的无密码(仍然使用密码短语)访问权限(请参阅下面的问题以了解我提到这一点的原因),我才能够使它工作(请参阅任务管理器)。即使在所有节点(主节点和从节点)上运行start-cluster.sh,我仍然无法看到场景1中的任务管理器。
基于这些,我有4个问题:
q1)我是否需要在每台机器上运行start-cluster.sh脚本(即主设备和从设备)?
q2)文档表明需要无密码ssh。我按照教程进行了这项工作,我能够做到这一点,但当我启动集群连接到每个从属服务器时,它仍然要求我提供一个密码短语。这是一个无密码连接应该是什么样子还是我应该试试别的?
q3)我是否需要我的从属服务器能够将ssh密码减少到主服务器,或者只需要主服务器将密码减少到从属服务器?
问题4)如果我需要it服务为我打开flink端口,请验证我只需要它们打开8081(用于web ui)和6123(我在参数中定义的默认值),好吗 jobmanager.rpc.port:
在我的flink-conf.yaml文件中?
场景1:3运行openjdk8的ubuntulinux机器的配置
场景2的配置:2台运行oracle jdk 8的mac os x 10计算机
在这两种情况下,我都使用ApacheFlink1.7.1
1条答案
按热度按时间bfnvny8b1#
我设法让大师看到了任务管理者。问题出在java安装上。虽然我非常确定我已经在所有的机器上安装了openjdk8,将path和javahome变量设置为指向同一个jdk的所有机器,但是似乎通过添加
env.java.home
中的参数flink-conf.yaml
要显式指向我的jdk路径(例如。,/usr/lib/jvm/java-8-openjdk-amd64
)我现在可以回答我的一些问题了:
q1)否,start-cluster.sh只能在主服务器上执行。
q2)我切换到一个没有密码短语的ssh连接(只要重新生成密钥并在请求密码短语时按enter键将其保留为空)。虽然我不知道这是否需要。
q3)不可以,只有主服务器可以对从服务器进行无密码访问。
q4)master打开并侦听端口8081和6123。它还会打开更多的端口(每个从机一个端口?)。如果你这样做了
sudo lsof -i -P -n
您将发现在每次更改时打开了哪些其他端口。