目录
Flink按资源的提供者(Resource Providers)可以分为Standalone、Native Kubernetes、Yarn三种部署方式。Standalone方式资源由Flink自身来管理。不论是哪种方式,安装Flink前需要安装好JDK,假设已经安装好JDK1.8。
安装包下载
登录Flink官网
如图:
点击Downloads,进入安装包下载页面,如图:
选择1.9.3版本,如图:
点击Binaries,如图:
下载如下版本Flink:
flink-1.9.3-bin-scala_2.11.tgz
单机版
规划
在192.168.128.111上安装Flink服务。部署规划如下:
主机IP | 主机名 | 部署Flink服务 |
192.168.128.111 | bigdata111 |
解压
将Flink安装包上传到bigdata111服务器上,进入安装包所在目录,执行如下解压命令:
tar -zxvf flink-1.9.3-bin-scala_2.11.tgz -C /opt/
将安装吧解压到/opt/目录下,解压成功后,如图:
配置
执行如下命令,打开配置文件:
vi /etc/profile
在配置文件末尾,配置内容如下:
# Flink
export FLINK_HOME=/opt/flink-1.9.3
export PATH=$FLINK_HOME/bin:$PATH
执行如下命令,保存配置:
source /etc/profile
启动Flink
执行如下命令,启动Flink
start-cluster.sh
启动成功后,执行jps查看是否启动成功:
查看管理页面
在浏览器中输入如下url,登录Flink Web UI页面:
http://bigdata111:8081
如图:
运行example
打开第一个shell窗口,输入如下命令,监听8888端口:
nc -lk 8888
如果没有安装nc,执行如下命令安装:
yum install -y nc
监听成功后,输入一些字符串,如图:
重新打开一个个shell窗口
进入flink安装目录,启动单词统计的java程序 SocketWindowWordCount,并监听8888端口
flink run examples/streaming/SocketWindowWordCount.jar --port 8888
执行成功后,如图:
再打开一个窗口,进入flink安装目录下的log目录,查看统计结果:
tail -f flink-root-taskexecutor-0-bigdata111.out
日志中记录了程序运行的统计结果,如图:
停止运行
执行如下命令,停止集群:
stop-cluster.sh
Standalone Cluster
Standalone是相对于资源管理来说的。Standalone表示Flink不依赖yarn等资源管理器。
a fully distributed fashion on a static (but possibly heterogeneous) cluster
规划
IP地址 | 主机名称 | Flink角色 |
192.168.128.111 | bigdata111 | master |
192.168.128.112 | bigdata112 | worker |
192.168.128.113 | bigdata113 | worker |
在安装前,每台机器需要安装JDK,假设已经安装好。
master安装
配置Flink安装目录下的conf/flink-conf.yaml
默认如下:
jobmanager.rpc.address: localhost
修改为:
jobmanager.rpc.address: bigdata111
修改Flink安装目录下conf/masters配置,默认如下:
localhost:8081
修改为:
bigdata111:8081
修改Flink安装目录下conf/slaves配置,默认如下:
localhost
修改为:
bigdata112
bigdata113
worker安装
将master上配置好的Flink部署包复制到worker中,保持目录相同。使用如下命令拷贝即可:
scp -r flink-1.9.3 root@bigdata112:/opt/
scp -r flink-1.9.3 root@bigdata113:/opt/
启动集群
在master节点上执行start-cluster.sh命令启动集群。然后jps查看各节点启动情况,如图:
停止集群
执行stop-cluster.sh命令即可,如图:
Yarn Cluster
Flink On Yarn部署需要部署Hadoop环境包括HDFS和Yarn,假设已经部署好,不需要启动Flink集群,后面可以看到Fink On Yarn的部署方式,提交任务时,会自动在Yarn集群的NodeManager节点上启动Flink集群(Job Manager和TaskManager)。该方式还要求向yarn提交任务的Flink客户端配置Hadoop环境。这里使用bigdata113(Worker)来模拟Flink客户端向Yarn提交任务,这里Flink 客户端可以是重新上传Flink安装包解压即可。执行如下命令,查看hadoop classpath是否存在
echo `hadoop classpath`
成功后,如图:
执行如下命令,打开配置文件
vi /etc/profile
在文件末尾添加如下配置:
# Flink On Yarn
export HADOOP_CLASSPATH=`hadoop classpath`
执行如下命令,生效配置文件:
source /etc/profile
接下来启动HDFS和Yarn集群,如图:
在bigdata113上重新上传flink安装包,并解压到当前目录来模拟flink客户端,如下:
tar -zxvf flink-1.9.3-bin-scala_2.11.tgz
执行如下命令,提交任务到yarn
./bin/flink run -m yarn-cluster -c com.leboop.SocketStreamingWordCount /root/jars/flink-1.0-SNAPSHOT.jar --host bigdata111 --port 9999
提交成功后,如图
如果未配置HADOOP_CLASSPATH,会报如下错误
[root@bigdata111 ~]flink run -m yarn-cluster -c com.leboop.SocketStreamingWordCount /root/jars/flink-1.0-SNAPSHOT.jar --host bigdata111 --port 9999
------------------------------------------------------------
The program finished with the following exception:
java.lang.RuntimeException: Could not identify hostname and port in 'yarn-cluster'.
at org.apache.flink.client.ClientUtils.parseHostPortAddress(ClientUtils.java:47)
at org.apache.flink.client.cli.AbstractCustomCommandLine.applyCommandLineOptionsToConfiguration(AbstractCustomCommandLine.java:83)
at org.apache.flink.client.cli.DefaultCLI.createClusterDescriptor(DefaultCLI.java:60)
at org.apache.flink.client.cli.DefaultCLI.createClusterDescriptor(DefaultCLI.java:35)
at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:216)
at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:205)
at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1008)
at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1081)
at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1081)
[root@bigdata111 ~]#
登录到yarn web ui页面(http://bigdata111:8088/),如图:
Name中显示Flink session cluster,表示是以session模式提交的。 bigdata112(NodeManager)上启动了JobManager和TaskManager,如图:
可以点击yarn web ui页面任务的ApplicationMaster,进入到Flink web ui页面,如图: