Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - Confusion regarding version of hadoop to use in hbase 0.90.1


Copy link to this message
-
Confusion regarding version of hadoop to use in hbase 0.90.1
Hari 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