簡體   English   中英

使用`'hadoop classpath`的-cp選項執行時,無法加載類

[英]Could not load class when executed with -cp option of `'hadoop classpath`

我的問題與這一問題非常接近,已經得到解答。 使用-cp選項執行時無法加載類

但是,情況略有不同

$ javac -cp `hadoop classpath` GrabHDFSBlockInfo.java 
$ java -cp `hadoop classpath` GrabHDFSBlockInfo 
 Error: Could not find or load main class GrabHDFSBlockInfo
$ ls GrabHDFSBlockInfo*
 GrabHDFSBlockInfo.class  GrabHDFSBlockInfo.java

所以在這種情況下,我想使用hadoop classpath的快捷方式。

非常感謝您的幫助

德邁


編輯:謝謝大家的幫助。 由於hadoop classpath在我的集群上變化不大。 我最終通過設置帶有擴展類路徑填充':'的var來更改.bashrc。 然后,只需使用$ java -cp $ classpath GrabHDFSBlockInfo

hadoop classpath的已知問題之一是它包含通配符。 結果,hadoop庫無法正確加載。 解決方法是,嘗試擴展通配符,將其替換為位於此處的jar序列。 這很可能會有所幫助。

出於類似目的的一些zsh腳本(盡管我只是在那里更新了現有的CLASSPATH):

classpath=`hadoop classpath | tr ':' ' ' | sort | uniq`
for file in ${=~classpath}(N)
do
  export CLASSPATH=$CLASSPATH:$file
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM