[1133]flink问题集锦

[1133]flink问题集锦,第1张

文章目录

问题1:
Could not get job jar and dependencies from JAR file: JAR file does not exist: -yn

原因:flink1.8版本之后已弃用该参数,ResourceManager将自动启动所需的尽可能多的容器,以满足作业请求的并行性。解决方法:去掉即可

问题2:
java.lang.IllegalStateException: No Executor found. Please make sure to export the HADOOP_CLASSPATH environment variable or have hadoop in your classpath.

方法1:配置环境变量

vi /etc/profile

#添加下面一行
export HADOOP_CLASSPATH=`hadoop classpath`

# 环境生效
source /etc/profile

方法2:下载对应版本 flink-shaded-hadoop-2-uber,放到flink的lib目录下

问题3:
Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (default) on project book-stream: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

产生这个问题的原因有很多,重要的是查看error报错的信息,我这边主要是scala中调用了java的方法,但build时只指定了打包scala的资源,所以会找不到类报错,下面是build出错的行,把它注释掉、删掉,不指定sourceDirectory,所有的sourceDirectory都会打包进去就可解决。

src/main/scala

问题4:
org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Could not find a suitable table factory for ‘org.apache.flink.table.planner.delegation.ParserFactory’ in the classpath.

这个错误也是因为打包时候没有将依赖打包进去、或者需要将依赖放到flink的lib目录下

maven换成了如下的build 的pulgin

 
        
 
            
                org.scala-tools
                maven-scala-plugin
                2.15.2
                
                    
                        
                            compile
                            testCompile
                        
                    
                
            
 
            
                maven-compiler-plugin
                3.6.0
                
                    1.8
                    1.8
                
            
 
            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.19
                
                    true
                
            
 
        
    

问题5:
Multiple versions of scala libraries detected!
Expected all dependencies to require Scala version: 2.11.12
org.apache.flink:flink-runtime_2.11:1.13.2 requires scala version: 2.11.12
org.apache.flink:flink-scala_2.11:1.13.2 requires scala version: 2.11.12
org.apache.flink:flink-scala_2.11:1.13.2 requires scala version: 2.11.12
org.scala-lang:scala-reflect:2.11.12 requires scala version: 2.11.12
org.apache.flink:flink-streaming-scala_2.11:1.13.2 requires scala version: 2.11.12
org.apache.flink:flink-streaming-scala_2.11:1.13.2 requires scala version: 2.11.12
org.scala-lang:scala-compiler:2.11.12 requires scala version: 2.11.12
org.scala-lang.modules:scala-xml_2.11:1.0.5 requires scala version: 2.11.7

这是由于scala-maven-plugin打包插件版本低的问题

Starting from Scala 2.10 all changes in bugfix/patch version should be backward compatible, so these warnings don’t really have the point in this case. But they are still very important in case when, let’s say, you somehow end up with scala 2.9 and 2.11 libraries. It happens that since version 3.1.6 you can fix this using scalaCompatVersion configuration

方法1:指定scalaCompatVersion一样的版本

 
        ${scala.binary.version}
        ${scala.version} 
 

下面是完整的

    
    net.alchim31.maven    
    scala-maven-plugin    
    3.1.6    
            
        ${scala.binary.version}                   ${scala.binary.version}    
        
            
                    
                            
                compile            
                    
            
    

方法2:打包插件换成4.x的版本

    
    net.alchim31.maven    
    scala-maven-plugin    
    4.2.0    
            
                    
                            
                compile            
                    
            
    

问题6:
cannot be cast to com.google.protobuf.Message

Caused by: java.lang.ClassCastException: org.apache.hadoop.yarn.proto.YarnServiceProtos$RegisterApplicationMasterRequestProto cannot be cast to com.google.protobuf.Message
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:227)
	at com.sun.proxy.$Proxy14.registerApplicationMaster(Unknown Source)
	at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationMasterProtocolPBClientImpl.registerApplicationMaster(ApplicationMasterProtocolPBClientImpl.java:106)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:256)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
	at com.sun.proxy.$Proxy15.registerApplicationMaster(Unknown Source)
	at org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl.registerApplicationMaster(AMRMClientImpl.java:222)
	at org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl.registerApplicationMaster(AMRMClientImpl.java:214)
	at org.apache.hadoop.yarn.client.api.async.impl.AMRMClientAsyncImpl.registerApplicationMaster(AMRMClientAsyncImpl.java:138)
	at org.apache.flink.yarn.YarnResourceManager.createAndStartResourceManagerClient(YarnResourceManager.java:205)
	at org.apache.flink.yarn.YarnResourceManager.initialize(YarnResourceManager.java:234)
	... 11 common frames omitted

这种问题一般是由于自己工程的hadoop的jar包和flink集群的jar包冲突导致的,解决办法:排除自己工程中的hadoop相关的jar,打包的时候不要打进来.

        
            org.apache.hadoop
            hadoop-common
            ${hadoop.version}
            provided
        

问题7:
Flink应用提交到集群报错:org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/dependencies

产生上述问题是在Flink中 *** 作了HDFS文件系统(比如checkpoint到HDFS) 但是缺少配置导致的(缺少hadoop相关依赖)

解决方法:
1.环境变量加入以下配置(别忘了刷新环境变量,之后重启Flink或者刷新环境变量无效的可以重启)

HADOOP_HOME=xxx
export HADOOP_HOME
export HADOOP_CLASSPATH=`hadoop classpath`

2.如果第一个步骤确定没问题还是不行的话 需要下载一个jar包放在Flink的lib目录下

flink-shaded-hadoop-2-uber-2.7.5-7.0下载地址:
https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-7.0/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar

flink-shaded-hadoop-2-uber下载地址:https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/

要按照HADOOP版本下载,我这里是2.9.2

放进去后要重启Flink集群 部分系统要重启系统才行 我这里就是放进去了不行 重启后好了!!!

问题8:
完整报错信息:
Exception in thread “main” java.lang.NoSuchMethodError: org.apache.commons.cli.Option.builder(Ljava/lang/String;)Lorg/apache/commons/cli/Option$Builder;
at org.apache.flink.runtime.entrypoint.parser.CommandLineOptions.(CommandLineOptions.java:27)
at org.apache.flink.runtime.entrypoint.DynamicParametersConfigurationParserFactory.options(DynamicParametersConfigurationParserFactory.java:43)
at org.apache.flink.runtime.entrypoint.DynamicParametersConfigurationParserFactory.getOptions(DynamicParametersConfigurationParserFactory.java:50)
at org.apache.flink.runtime.entrypoint.parser.CommandLineParser.parse(CommandLineParser.java:42)
at org.apache.flink.runtime.entrypoint.ClusterEntrypointUtils.parseParametersOrExit(ClusterEntrypointUtils.java:63)
at org.apache.flink.yarn.entrypoint.YarnJobClusterEntrypoint.main(YarnJobClusterEntrypoint.java:89)

报错原因:

依赖中commons-cli版本过低导致运行时找不到新版本的方法

解决办法:
排除Hadoop中commons-cli依赖,并添加高版本

        
            org.apache.hadoop
            hadoop-common
            3.2.2
            
                
                    commons-cli
                    commons-cli
                
            
        
        
        
            commons-cli
            commons-cli
            1.3.1
        

问题9:
Exception in thread “Thread-8” java.lang.IllegalStateException: Trying to access closed classloader. Please check if you store classloaders directly or indirectly in static fields. If the stacktrace suggests that the leak occurs in a third party library and cannot be fixed immediately, you can disable this check with the configuration ‘classloader.check-leaked-classloader’.

解决方法:在flink-conf.yaml中添加

classloader.check-leaked-classloader: false

问题10:
Could not deploy Yarn job cluster

任务提交时,报错: Could not deploy Yarn job cluster

原因:我们往下看

原因:设置的内存超过了限制。

解决:修改内存大小设置

yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.resource.memory-mb

问题11:
org.apache.flink.client.deployment.ClusterDeploymentException Couldn’t deploy Yarn

出现此类错误,主要的原因是Current usage: 75.1 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memory used. Killing container.

字面原因是容器内存不够,实际上是flink on yarn启动时检查虚拟内存造成的

所以修改配置文件,让它不检查就没事了

修改etc/hadoop/yarn-site.xml

 
    yarn.nodemanager.vmem-check-enabled 
    false 

问题12:
org.apache.hadoop.yarn.client.RMProxy - Connecting to ResourceManager at /0.0.0.0:8032

尝试重新连接Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s)失败.

2021-03-19 07:43:15,103 WARN  org.apache.flink.runtime.util.HadoopUtils                     - Could not find Hadoop configuration via any of the supported methods (Flink configuration, environment variables).
2021-03-19 07:43:15,545 WARN  org.apache.hadoop.util.NativeCodeLoader                       - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2021-03-19 07:43:15,657 INFO  org.apache.flink.runtime.security.modules.HadoopModule        - Hadoop user set to ryxiong (auth:SIMPLE), credentials check status: true
2021-03-19 07:43:15,715 INFO  org.apache.flink.runtime.security.modules.JaasModule          - Jaas file will be created as /tmp/jaas-1195372589162118065.conf.
2021-03-19 07:43:15,734 WARN  org.apache.flink.yarn.cli.FlinkYarnSessionCli                 - The configuration directory ('/opt/module/flink-1.10.1/conf') already contains a LOG4J config file.If you want to use logback, then please delete or rename the log configuration file.
2021-03-19 07:43:15,802 INFO  org.apache.hadoop.yarn.client.RMProxy                         - Connecting to ResourceManager at /0.0.0.0:8032

2021-03-19 07:43:27,189 INFO  org.apache.hadoop.ipc.Client                                  - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2021-03-19 07:43:28,195 INFO  org.apache.hadoop.ipc.Client                                  - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2021-03-19 07:43:29,201 INFO  org.apache.hadoop.ipc.Client                                  - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

原因:
1.检查是否启动hadoop集群, 如果没有启动, 是无法连接到hadoop的yarn

2.flink运行于yarn上,flink要能找到hadoop配置,因为要连接到yarn的resourcemanager和hdfs。

如果正常启动还无法连接yarn, 可以查看一下hadoop的环境变量是否配置好

解决方案:
1.启动hadoop集群

2.配置hadoop的环境变量

# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

问题13:
HADOOP启动错误: LOG4J.PROPERTIES IS NOT FOUND…CORE-SITE.XML NOT FOUND的解决办法

描述:在禁用CDH集群的KERBEROS认证后,进行**服务功能验证,**查看HDFS文件系统时出现CORE-SITE.XML找不到错误

[root@utility ~]# hadoop fs -ls /
WARNING: log4j.properties is not found. HADOOP_CONF_DIR may be incomplete.
Exception in thread "main" java.lang.RuntimeException: core-site.xml not found
        at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2867)
        at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2815)
        at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2692)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:1329)
        at org.apache.hadoop.conf.Configuration.set(Configuration.java:1301)
        at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1642)
        at org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:339)
        at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:569)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:174)
        at org.apache.hadoop.util.GenericOptionsParser.(GenericOptionsParser.java:156)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:389)

按照提示说core-site.xml找不到, 很疑惑;明明core-site.xml等配置文件存在,且配置没有任何问题。好在经过查阅资料找到了解决办法:原来是环境变量的问题,需要配置HADOOP_CONF_DIR路径。HADOOP_CONF_DIR 变量为自己的Hadoop目录(默认是个错误的路径所以会跳错)

vi /etc/profile
 
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

保存退出使环境变量立即生效。

source /etc/profile

再次运行命令,恢复正常。

如果修改之后仍报错,可以查看是否将HADOOP_CONF_DIR的路径配置在hadoop-env.sh中,若没有,添加保存即可解决。

注:出现此错误主要需要检查了etc/hadoop目录下的hadoop-env.sh,mapred-env.sh与yarn-env.sh下配置的HADOOP_CONF_DIR路径。

问题14:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

解决方法
第一种方法:导入commons-logging.jar包

第二种方法,如果用的是maven项目,则直接在pom.xml中加入commons-logging依赖包,如下:


	commons-logging
	commons-logging
	1.2

注:需在标签里的开头位置添加,若在其它位置添加,则可能还会存在该问题。


参考:

  • flink问题集锦:https://blog.csdn.net/Chenftli/article/details/123581749

  • flink开发过程中的常见问题:https://www.codeleading.com/article/8265926617/

  • flink on yarn的一则jar冲突问题,你遇到过没:https://cloud.tencent.com/developer/article/1863679

  • flink1.13启动失败:https://blog.csdn.net/syyyyyyyyyyyyyyh/article/details/118027965

  • org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/depend:
    https://blog.csdn.net/qq_39211575/article/details/104460319

  • flink1.12 提交Job 时 Exception in thread “main“ java.lang.NoSuchMethodError: org.apache.commons.cli.Opt:https://blog.csdn.net/M283592338/article/details/120768957

  • flink1.13.2运行错误问题:https://blog.csdn.net/jkllb123/article/details/120433753

  • 任务提交时,报错: Could not deploy Yarn job cluster:https://blog.csdn.net/u011110301/article/details/119104942

  • flink on yarn模式出现The main method caused an error: Could not deploy Yarn job cluster问题排查+解决
    https://www.codeleading.com/article/76613848513/

  • Flink集群启动报错 org.apache.flink.client.deployment.ClusterDeploymentException
    https://blog.csdn.net/A1585570507/article/details/114991690
    https://blog.csdn.net/weixin_44393345/article/details/106517394

  • flink无法连接yarn- Connecting to ResourceManager at /0.0.0.0:8032:
    https://blog.csdn.net/Ryxiong728/article/details/115558066

  • HADOOP启动错误: LOG4J.PROPERTIES IS NOT FOUND…CORE-SITE.XML NOT FOUND的解决办法:
    https://www.freesion.com/article/5840820802/
    https://blog.csdn.net/danielchan2518/article/details/81007308

  • 用History Server实现Flink 作业宕机查看:https://blog.csdn.net/weixin_42073629/article/details/109213696

  • java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法:https://www.cnblogs.com/jun-zi/p/12079586.html
    https://blog.csdn.net/hymas/article/details/77963833


  • Hive连接+Kerberos认证各种报错及解决办法汇总
    https://blog.csdn.net/Jason_yesly/article/details/110840130
    https://blog.csdn.net/Jason_yesly/article/details/110845993

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/724553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存