本文内容出自Flink官方文档:http://flink.apache.org/
https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/deployment/cluster_setup.html
本文准备了三台阿里云服务器:
master | x.x.x.1 |
---|---|
slave1 | x.x.x.2 |
slave3 | x.x.x.3 |
注意操作不建议使用root用户,会有很多安全问题。
新建用户赋予root权限可参考博客:https://blog.csdn.net/qq_36857730/article/details/83274854
SSH免密码登录
为了能够启动/停止远程主机上的进程,master节点需要能免密登录所有worker节点。最方便的方式就是使用ssh的公钥验证了。要安装公钥验证,首先以最终会运行Flink的用户登录master节点。所有的worker节点上也必须要有同样的用户(例如:使用相同用户名的用户)。非常不建议使用 root 账户,这会有很多的安全问题。
当你用需要的用户登录了master节点,你就可以生成一对新的公钥/私钥。下面这段命令会在 ~/.ssh 目录下生成一对新的公钥/私钥。
ssh-keygen -b 2048 -P '' -f ~/.ssh/id_rsa
接下来,将公钥添加到用于认证的authorized_keys文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
最后,将authorized_keys文件分发给集群中所有的worker节点,你可以重复地执行下面这段命令:
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
将上面的替代成相应worker节点的IP/Hostname。完成了上述拷贝的工作,你应该就可以从master上免密登录其他机器了。
ssh <worker>
首先要确保三台机器上的java安装成功,且版本都为1.8+。
[root@hadoop001 ~]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
下载Flink:https://flink.apache.org/downloads.html
本文使用的是1.10.1版本。
使用scp命令将压缩包上传到三台机器上。
scp flink-1.10.1-bin-scala_2.11.tgz [email protected]:~
解压到统一路径下,此处路径为/root/software
[root@hadoop001 software]# pwd
/root/software
[root@hadoop001 software]# ls
flink-1.10.1-bin-scala_2.11.tgz
[root@hadoop001 software]# tar -zxvf flink-1.10.1-bin-scala_2.11.tgz
...
[root@hadoop001 software]# ls
flink-1.10.1 flink-1.10.1-bin-scala_2.11.tgz
根据官方文档提供的下图配置
首先配置master节点的flink-conf.yaml
配置文件:
[root@hadoop001 conf]# pwd
/root/software/flink-1.10.1/conf
[root@hadoop001 conf]# vim flink-conf.yaml
常用配置信息如下:
配置项 | 说明 |
---|---|
jobmanager.rpc.address | master节点的地址 |
jobmanager.heap.mb | jobmanager节点可用的内存 |
taskmanager.heap.mb | taskmanager节点可用的内存 |
taskmanager.numberOfTaskSlots | 每个机器可用的cpu个数 |
parallelism.default | 任务的并行度 |
taskmanager.tmp.dirs | taskmanager的临时数据存储目录 |
此处我们只改了address信息为master机器的ip。建议可以仔细看看里面的配置项。
随后编辑slaves配置文件vim slaves
,将三个机器的ip都配置进去(包括master所在机器本身)。
[root@hadoop001 conf]# vim slaves
[root@hadoop001 conf]# cat slaves
x.x.x.1
x.x.x.2
x.x.x.3
启动服务./bin/start-cluster.sh
:
[root@hadoop001 flink-1.10.1]# ./bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host hadoop001.
The authenticity of host '122.51.239.108 (122.51.239.108)' can't be established.
ECDSA key fingerprint is SHA256:x3113UfXJHxrOd+DO5gH6u3euWC+YzaMmcWCbiqMK1A.
ECDSA key fingerprint is MD5:7a:a0:d6:e4:b7:d6:89:94:56:54:de:23:b1:bf:c3:5b.
此处免密登陆存在问题,暂搁置。。。