Flink1.15.0 ON YARN叢集安裝
阿新 • • 發佈:2022-05-23
安裝準備:
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: