1.flink Standalone集群搭建《深入理解flink系列》

文章目录

    • Standalone模式
      • 1 免密登录
      • 2 Standalone集群
        • 1. flink-conf.yaml文件配置
        • 2. slaves文件配置
        • 3. 分发Flink目录
        • 4. 启动一个Flink集群
        • 5. 集群节点重启与扩容
          • JobManager节点重启或扩容
          • TaskManager节点重启或扩容

Standalone模式

Apache Flink集群可以部署在Linux, Mac OS和Windows系统上,唯一的要求是系统环境安装了Java 8.x及以上版本。

这里准备两台64位的Linux系统,系统的主机名分别为intsmaze-201和intsmaze-202。两台机器安装了1.8版本的64位JDK,均已关闭防火墙,且相互配置了免密登录。

1 免密登录

在intsmaze-201节点上输入"ssh-keygen"命令来生成本地的公私密钥,出现类似如下界面就代表生成本地的公私密钥成功。

[intsmaze@intsmaze-201 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/intsmaze/.ssh/id_rsa): 
Create directory '/home/intsmaze/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/intsmaze/.ssh/id_rsa.
Your public key has been saved in /home/intsmaze/.ssh/id_rsa.pub.
The key fingerprint is:
32:63:ed:7c:4e:dc:ca:99:ce:b0:81:62:73:fd:a3:b9 intsmaze@intsmaze-201
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|       .         |
|      = S        |
|     . O . .     |
|    + o * + .    |
|   . +   %.+     |
|        E+X.     |
+-----------------+

然后在intsmaze-201节点上输入"ssh-copy-id"命令将公钥拷贝并追加到intsmaze-201,intsmaze-202的授权列表文件authorized_keys中。

[intsmaze@intsmaze-201 ~]$ ssh-copy-id intsmaze-201
[intsmaze@intsmaze-201 ~]$ ssh-copy-id intsmaze-202

在intsmaze-202节点重复执行在intsmaze-201节点上的操作,自此就配置好免密登录。

2 Standalone集群

免密登录配置好后,先在intsmaze-201和intsmaze-202节点上/home/intsmaze/flink/路径下创建一个名为standalone的文件夹。将flink-XX.tgz包上传到intsmaze-201节点上,使用tar命令解压至/home/intsmaze/flink/standalone/文件夹下面。
一切准备就绪后,进入目录对其进行相关的配置,这里主要涉及到的配置文件是/conf/flink-conf.yam和/conf/slaves文件。

1. flink-conf.yaml文件配置

下面列出建议修改/conf/flink-conf.yaml文件中的配置值,在其中指明会在intsmaze-201节点上运行一个JobManager。

[intsmaze@intsmaze-201 conf]$ vim /conf/flink-conf.yaml
# 必选,将jobmanager.rpc.address的值设置成Flink集群中Jobmanager节点的IP地址
jobmanager.rpc.address: intsmaze-201

# 可选,默认每个TaskManager的任务槽为1
# 值越大表示可供运行的Flink作业越多,一般根据每台机器的可用cpu的数量进行设置。
taskmanager.numberOfTaskSlots: 6

# 可选: 每个JobManager可用内存的大小,内存参数的单位是MB
jobmanager.heap.mb: 1024

# 可选:每个TaskManager可用内存的大小,内存参数的单位是MB
taskmanager.heap.mb: 1024

2. slaves文件配置

必须为Flink集群提供作为TaskManager节点的列表,需要编辑/conf/slaves文件,在文件中添加每一个TaskManager节点IP(或者是hostname)。
下面将主机名intsmaze-201和intsmaze-202都添加到slaves文件中,以指明这两台节点上将分别运行一个TaskManager。

[intsmaze@intsmaze-201 conf]$ vim /conf/slaves
intsmaze-201
intsmaze-202

3. 分发Flink目录

在intsmaze-201节点的/conf下配置好Flink的standalone模式的参数后,需要保证该目录下的文件必须在每个TaskManager上的同一路径下可用,为此使用scp命令将整个目录复制到每个工作节点。

[intsmaze@intsmaze-201 conf]$ scp -r /home/intsmaze/flink/standalone/flink-1.7.2 intsmaze-202:/home/intsmaze/flink/standalone/

4. 启动一个Flink集群

分发好目录后,在intsmaze-201节点通过/bin/start-cluster.sh脚本启动Flink集群。

[intsmaze@intsmaze-201 flink-1.7.2]$ ./bin/start-cluster.sh

启动成功后,作业管理器进程默认将会在8081端口上启动一个Flink集群的WEB管控台页面,可以在浏览器中输入 http://intsmaze-201:8081 来查看作业管理器的WEB页面,如果一切正常运行,在WEB页面会显示两个可用的任务管理器实例,并且集群的任务槽数量为12。

/bin/目录下可以使用如下脚本来关掉启动的Flink集群。

[intsmaze@intsmaze-201 flink-1.7.2]$ ./bin/stop-cluster.sh

5. 集群节点重启与扩容

Flink还提供了动态扩展集群节点或重启集群中指定节点的脚本,可以运行/bin/jobmanager.sh和/bin/taskmanager.sh脚本。

JobManager节点重启或扩容
bin/jobmanager.sh ((start|start-foreground) cluster)|stop|stop-all
TaskManager节点重启或扩容
bin/taskmanager.sh start|start-foreground|stop|stop-all

你可能感兴趣的:(深入理解flink,flink,linux,hadoop)