1. 程式人生 > 其它 >Flink1.15.0 ON YARN叢集安裝

Flink1.15.0 ON YARN叢集安裝

安裝準備:

hadoop3.2.2,
flink1.15.0

在成功安裝hadoop3.2.2的基礎上,採用YARN模式安裝Flink1.15。

1.在/etc/profile檔案中追加配置:

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

2.修改hadoop相關配置:

在conf資料夾中hadoop-env.sh檔案中,新增配置:

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

在yarn-site.xml檔案中新增不檢查節點記憶體配置(flink用記憶體超過一定量時會被hadoop結束執行緒)。

<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

在flink的flink-conf.xml檔案中,新增UI的埠配置(不配置flink會使用隨機埠):

rest.port: 8081

配置完成後,啟動flink:

bin/flink-session

報錯:

java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as ********.122:9866
at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:134) ~[flink-shaded-hadoop-3
-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0] at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:110) ~[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0] at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1778) [flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0] at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679) [flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0] at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716) [flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0] 2022-05-23 15:54:34,591 WARN org.apache.hadoop.hdfs.DataStreamer [] - Abandoning BP-663602447-10.171.55.121-1653037076867:blk_1073741905_1081 2022-05-23 15:54:34,591 WARN org.apache.hadoop.hdfs.DataStreamer [] - Excluding datanode DatanodeInfoWithStorage[10.171.55.122:9866,DS-4457a3e2-ab0b-49c9-b144-f508123c2fa7,DISK] ^C2022-05-23 15:54:37,603 INFO org.apache.hadoop.hdfs.DataStreamer [] - Exception in createBlockOutputStream blk_1073741906_1082
及報錯:
org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn session cluster
at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:428)
at org.apache.flink.yarn.cli.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:606)
at org.apache.flink.yarn.cli.FlinkYarnSessionCli.lambda$main$4(FlinkYarnSessionCli.java:860)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1898)
at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
at org.apache.flink.yarn.cli.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:860)

解決辦法為:

1.開啟datanode節點的9866埠。

2.在flink的lib資料夾新增如下jar:

commons-cli-1.5.0.jar(apache-commons-cli)
flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar
hadoop-yarn-api-3.2.2.jar(從hadoop/share/yarn/資料夾拷貝過來)

以上2個jar,從以下倉庫下載:

https://mvnrepository.com/

其中commons-cli,選擇:apache-common-cli(我選擇1.5.0版本)

然後重新執行,出現以下畫面,說明ok: