java.io.IOException: Can't get Master Kerberos principal for use as renewer 錯誤解決


最近在集群中執行調度任務,或者是 在集群中執行 hadoop distcp 命令都會報這樣的問題。

java.io.IOException: Can't get Master Kerberos principal for use as renewer
- at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:133)
 at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:100)
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:80)
 at org.apache.hadoop.tools.SimpleCopyListing.validatePaths(SimpleCopyListing.java:191)
at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:85)
 at org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:90)
 at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:86)
 at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:429)
 at org.apache.hadoop.tools.DistCp.prepareFileListing(DistCp.java:91)
at org.apache.hadoop.tools.DistCp.execute(DistCp.java:181)
at org.apache.hadoop.tools.DistCp.run(DistCp.java:143)
 at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.tools.DistCp.main(DistCp.java:493)

經過源碼分析:

 代碼中會去讀取yarn的配置文件,如果讀不到yarn的配置文件,就會報這樣的錯誤。

解決方法:

與機器的HADOOP_CLASSPATH 環境變量有關,我們是有同事添加了錯誤的HADOOP_CLASSPATH 環境變量,最終在機器上移掉該環境變量,就可以工作了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM