|
|
-
Confusion regarding version of hadoop to use in hbase 0.90.1Hari Sreekumar 2011-03-29, 12:25
Hi,
I went through this thread ( http://www.apacheserver.net/Using-Hadoop-bundled-in-lib-directory-HBase-at1134614.htm) which mentions that the hadoop jars ( hadoop-0.20.2/hadoop-0.20.2-core.jar and hadoop-0.20.2/hadoop-0.20.2-core.jar) can simply be replaced by hbase-0.90.1/lib/hadoop-*.jar files. Now I have the following jars in hbase-0.90.1/lib: hadoop-core-0.20-append-r1056497.jar In my hadoop-0.20.2/*.jar, I have these jars : hadoop-0.20.2-ant.jar hadoop-0.20.2-examples.jar hadoop-0.20.2-tools.jar hadoop-0.20.2-core.jar hadoop-0.20.2-test.jar If anyone else has tried this way, which jar did you replace? I tried replacing hadoop-0.20.2-core.jar with hadoop-core-0.20-append-r1056497.jar. I get this error when I tried to start dfs: 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:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/server/namenode/NameNode hadoop1: starting datanode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-datanode-hadoop1.out hadoop2: starting datanode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-datanode-hadoop2.out hadoop3: starting datanode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-datanode-hadoop3.out ejabber: starting datanode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-datanode-ejabber.out hadoop1: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName hadoop1: Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName hadoop1: at java.net.URLClassLoader$1.run(URLClassLoader.java:202) hadoop1: at java.security.AccessController.doPrivileged(Native Method) hadoop1: at java.net.URLClassLoader.findClass(URLClassLoader.java:190) hadoop1: at java.lang.ClassLoader.loadClass(ClassLoader.java:307) hadoop1: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) hadoop1: at java.lang.ClassLoader.loadClass(ClassLoader.java:248) hadoop1: Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit. hadoop1: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/server/datanode/DataNode hadoop2: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName hadoop2: Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName hadoop2: at java.net.URLClassLoader$1.run(URLClassLoader.java:202) hadoop2: at java.security.AccessController.doPrivileged(Native Method) hadoop2: at java.net.URLClassLoader.findClass(URLClassLoader.java:190) hadoop2: at java.lang.ClassLoader.loadClass(ClassLoader.java:307) hadoop2: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) hadoop2: at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Am I instead supposed to keep both jars and not replace one with another ? Won't that lead to conflict? Thanks, Hari |