谢谢回复。

我已经采用 `hadoop classpath` 方式完成了 Hadoop 的集成。当前的问题是在 CDH 5.16.2 + Flink 环境下遇到的


补充下丢失的截图信息


使用 Scala REPL Yarn 运行模式报 NoSuchMethodError,详细错误信息如下:
$ ./bin/start-scala-shell.sh yarn
|
scala> Exception in thread "main" java.lang.NoSuchMethodError: 
jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion(Z)V
at 
scala.tools.nsc.interpreter.jline.JLineConsoleReader.initCompletion(JLineReader.scala:139)
at 
scala.tools.nsc.interpreter.jline.InteractiveReader.postInit(JLineReader.scala:54)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$25.apply(ILoop.scala:899)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$25.apply(ILoop.scala:897)
at 
scala.tools.nsc.interpreter.SplashReader.postInit(InteractiveReader.scala:130)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$scala$tools$nsc$interpreter$ILoop$$anonfun$$loopPostInit$1$1.apply$mcV$sp(ILoop.scala:926)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$scala$tools$nsc$interpreter$ILoop$$anonfun$$loopPostInit$1$1.apply(ILoop.scala:908)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$scala$tools$nsc$interpreter$ILoop$$anonfun$$loopPostInit$1$1.apply(ILoop.scala:908)
at scala.tools.nsc.interpreter.ILoop$$anonfun$mumly$1.apply(ILoop.scala:189)
at scala.tools.nsc.interpreter.IMain.beQuietDuring(IMain.scala:221)
at scala.tools.nsc.interpreter.ILoop.mumly(ILoop.scala:186)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$startup$1$1.apply(ILoop.scala:979)
at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:990)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:891)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:891)
at 
scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:891)
at org.apache.flink.api.scala.FlinkShell$.startShell(FlinkShell.scala:187)
at org.apache.flink.api.scala.FlinkShell$.main(FlinkShell.scala:131)
at org.apache.flink.api.scala.FlinkShell.main(FlinkShell.scala)
|







环境说明
CDH 5.16.2
测试 Flink 1.10.2 和 1.11.2 都能复现该问题


已分析内容
使用 Arthas 查看已加载类,加载的是 CDH 相关依赖
|
$ sc *CandidateListCompletionHandler
jline.console.completer.CandidateListCompletionHandler
Affect(row-cnt:1) cost in 113 ms.
[arthas@23856]$ sc -d jline.console.completer.CandidateListCompletionHandler
 class-info        jline.console.completer.CandidateListCompletionHandler       
                                                                                
                                                                          
 code-source       
/opt/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/jars/jline-2.11.jar           
                                                                                
                                                       
 name              jline.console.completer.CandidateListCompletionHandler       
                                                                                
                                                                          
 isInterface       false                                                        
                                                                                
                                                                          
 isAnnotation      false                                                        
                                                                                
                                                                          
 isEnum            false                                                        
                                                                                
                                                                          
 isAnonymousClass  false                                                        
                                                                                
                                                                          
 isArray           false                                                        
                                                                                
                                                                          
 isLocalClass      false                                                        
                                                                                
                                                                          
 isMemberClass     false                                                        
                                                                                
                                                                          
 isPrimitive       false                                                        
                                                                                
                                                                          
 isSynthetic       false                                                        
                                                                                
                                                                          
 simple-name       CandidateListCompletionHandler                               
                                                                                
                                                                          
 modifier          public                                                       
                                                                                
                                                                          
 annotation                                                                     
                                                                                
                                                                          
 interfaces        jline.console.completer.CompletionHandler                    
                                                                                
                                                                          
 super-class       +-java.lang.Object                                           
                                                                                
                                                                          
 class-loader      +-sun.misc.Launcher$AppClassLoader@677327b6                  
                                                                                
                                                                          
                     +-sun.misc.Launcher$ExtClassLoader@fcd6521                 
                                                                                
                                                                          
 classLoaderHash   677327b6                                                     
                                                                                
                                                                          


Affect(row-cnt:1) cost in 39 ms.
|




删除这个 CDH 依赖 jline-2.11.jar,不再报 NoSuchMethodError。但 Arthas 没有找到 
jline.console.completer.CandidateListCompletionHandler,而是找到 
scala.tools.jline_embedded.console.completer.CandidateListCompletionHandler,详见下面截图

|
$ sc *CandidateListCompletionHandler
scala.tools.jline_embedded.console.completer.CandidateListCompletionHandler
Affect(row-cnt:1) cost in 47 ms.
[arthas@17882]$ sc -d 
scala.tools.jline_embedded.console.completer.CandidateListCompletionHandler
 class-info        
scala.tools.jline_embedded.console.completer.CandidateListCompletionHandler     
                                                                                
                                                       
 code-source       
/home/flink/luguoqing/flink/flink-1.10.2/lib/flink-dist_2.11-1.10.2.jar         
                                                                                
                                                       
 name              
scala.tools.jline_embedded.console.completer.CandidateListCompletionHandler     
                                                                                
                                                       
 isInterface       false                                                        
                                                                                
                                                                          
 isAnnotation      false                                                        
                                                                                
                                                                          
 isEnum            false                                                        
                                                                                
                                                                          
 isAnonymousClass  false                                                        
                                                                                
                                                                          
 isArray           false                                                        
                                                                                
                                                                          
 isLocalClass      false                                                        
                                                                                
                                                                          
 isMemberClass     false                                                        
                                                                                
                                                                          
 isPrimitive       false                                                        
                                                                                
                                                                          
 isSynthetic       false                                                        
                                                                                
                                                                          
 simple-name       CandidateListCompletionHandler                               
                                                                                
                                                                          
 modifier          public                                                       
                                                                                
                                                                          
 annotation                                                                     
                                                                                
                                                                          
 interfaces        
scala.tools.jline_embedded.console.completer.CompletionHandler                  
                                                                                
                                                       
 super-class       +-java.lang.Object                                           
                                                                                
                                                                          
 class-loader      +-sun.misc.Launcher$AppClassLoader@12a3a380                  
                                                                                
                                                                          
                     +-sun.misc.Launcher$ExtClassLoader@2eda0940                
                                                                                
                                                                          
 classLoaderHash   12a3a380                                                     
                                                                                
                                                                          


Affect(row-cnt:1) cost in 27 ms.
|








在 2020-12-16 18:12:57,"Jacob" <[email protected]> 写道:
>hi,
>你的截图好像没有上传成功,通过你的描述,大概是NoSuchMethod之类的错误,我前几天在升级flink版本时候也遇到过类似问题,后来的解决方案是
>导入hadoop classpath (export HADOOP_CLASSPATH=`hadoop
>classpath`)解决的,如果没有解决你的问题,尝试把flink-shaded-hadoop-2-uber*-*.jar放在 flink/lib下面
>
>
>
>
>Thanks!
>Jacob
>
>
>
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/



回复