案例:Flink1.12.4
发现问题
启动Flink
//启动之后会显示如下日志信息
Starting HA cluster with 2 masters.
Starting standalonesession daemon on host hadoop001.
Starting standalonesession daemon on host hadoop002.
Starting taskexecutor daemon on host hadoop001.
Starting taskexecutor daemon on host hadoop002.
Starting taskexecutor daemon on host hadoop003.
查看进程发现,hadoop001 和 hadoop002 的 JobManager 进程StandaloneSessionClusterEntrypoint,hadoop001、hadoop002 和 hadoop003 上的 TaskManager 进程TaskManagerRunner都没有启动。
如果启动成功
Master应该有StandaloneSessionClusterEntrypoint
Slave应该有TaskManagerRunner
通过查看 log
目录下的日志来定位错误,发现错误如下:
2022-03-17 17:18:35,877 INFO org.apache.flink.runtime.entrypoint.ClusterEntrypoint
- Shutting StandaloneSessionClusterEntrypoint down with application status FAILED. Diagnostics
java.io.IOException: Could not create FileSystem for highly available storage (high-availability.storageDir)
.......
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file
system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no
Hadoop file system to support this scheme could be loaded.
.....
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in
the classpath/dependencies.
......
异常日志
org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.
日志表明:无法加载hadoop的hdfs,Flink不支持。
解决方案
下载Flink对应的hadoop插件,放入flink的lib中。
下载插件的官网地址:Apache Flink: Downloads
如:我的hadoop版本是2.7,下载hadoop的插件。
把刚才下载好的插件上传到flink的lib目录中:
重新启动Flink:
[hadoop@hadoop01 ~]$ bin/start-cluster.sh
[hadoop@hadoop01 ~]$ call-cluster.sh jps
--------hadoop01--------
10369 QuorumPeerMain
11297 NodeManager
12241 TaskManagerRunner
10885 JournalNode
10551 NameNode
12599 Jps
12538 HistoryServer
11083 DFSZKFailoverController
11211 JobHistoryServer
10669 DataNode
11823 StandaloneSessionClusterEntrypoint
--------hadoop02--------
8977 TaskManagerRunner
7459 QuorumPeerMain
7956 ResourceManager
7542 NameNode
7623 DataNode
8616 StandaloneSessionClusterEntrypoint
9066 Jps
7821 DFSZKFailoverController
7726 JournalNode
8047 NodeManager
--------hadoop03--------
7456 QuorumPeerMain
7636 JournalNode
7764 ResourceManager
7878 NodeManager
8345 TaskManagerRunner
8410 Jps
7532 DataNode
查看进程,发现启动成功!!!
访问web界面 http://hadoop01:8081 ,
问题解决!