2013-09-24 7 views
12

この例外に関して多くの投稿がありましたが、私はこの問題を解決できません。クラスパスを編集しなければならないと私はそれを解決すると思います。 私は、hadoopインフラストラクチャでDistMapというプログラムを実行しようとしています。これは私が得ているエラーです。スレッド「main」の例外java.lang.NoClassDefFoundError:org/apache/hadoop/util/PlatformName

javaは

/usr/java/jdk1.6.0_32/bin/java 

エコーの$ CLASSPATHが空白行を与える

猫〜/ .bash_profileをが

cat ~/.bash_profile 
# .bash_profile 

# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
     . ~/.bashrc 
fi 

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin 

export PATH 

がアップデート言う言う

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit. 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FsShell 
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FsShell 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.apache.hadoop.fs.FsShell. Program will exit. 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName 
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit. 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FsShell 
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FsShell 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.apache.hadoop.fs.FsShell. Program will exit. 
Error could not create input directory /distmap_output_input folder on hdfs file system 

$ HADOOP_HOME /usr/lib/hadoop

$ HADOOP_CLASSPATH

/usr/lib/hadoop-0.20-mapreduce/hadoop-ant-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop‌​-0.20-mapreduce/hadoop-ant.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-examples-2.0‌​.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar:/usr/lib/h‌​adoop-0.20-mapreduce/hadoop-core.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-core-2‌​.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-test-2.0.0-mr1-cdh4.4‌​.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-test.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-tools-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hado‌​op-0.20-mapreduce/hadoop-tools.jar:/usr/lib/hadoop-0.20-mapreduce/lib/*jar:/usr/lib/hadoop/hadoop-common.jar:/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.4.0.jar

最後の2 jarファイルは、それらのクラスPlatformNameとFsShellを持っています。まだそれは動作しません。

誰でも問題を解決できますか?

おかげ

+0

'hadoop-core.jar'を見つけることができないようですが、jarファイルが' CLASSPATH'に含まれていることを確認してください。 – Aaron

+0

これはこのように行われますか? $ PATH:$ PATH:$ HOME/bin:/usr/lib/hadoop/hadoop-core.jar – Ashwin

+0

そのPATHを$ PATHに変更する必要がありますか?$ usr/java/jdk1.6.0_32/bin? – Ashwin

答えて

0

Hadoop HADOOP_CLASSPATH issues

これは参考になります。

おかげ&よろしく、
Alok Thaker

+0

多くのjarファイルがあるたくさんのhadoopフォルダがあるので、私はあまり理解しませんでした。私は設定するものを理解していない。 – Ashwin

+0

クラスパスにすべてのjarを含めました。まだ動かない :( – Ashwin

16

のHadoop-AUTH-2.2.0.jarは、お使いのバージョンののHadoop認証ジャーを追加hadoop2.2.0
のためにそこにあるべき

2

あなたがmavenユーザーでこの問題に直面した場合 -

<dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-client</artifactId> 
     <version>${hadoop.client.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-common</artifactId> 
     <version>${hadoop.client.version}</version> 
    </dependency> 

注::hadoop-client:2.5.2だけでは、必要なhadoopの依存関係がすべて取り込まれませんでした。それで、私はhadoop-commonを追加しました。これは、必要なすべてのdepsをもたらしました。

関連する問題