Well I've found what was the problem, this line in the jobtracker log show me the light :
2011-03-14 22:53:28,421 INFO org.apache.hadoop.mapred.TaskTracker: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find taskTracker/jobcache/job_201103142222_0007/attempt_201103142222_0007_m_000200_0/output/file.out in any of the configured local directories The hadoop.tmp.dir was set to a local directory and it was the cause of all my problems! It could be interesting to change the error message returned as it was not very informative. Stupid configuration made by noob users can always lead to strange behavior :-) Thank you for your help Stack! 2011/3/14 Thibault Dory <[email protected]> > I'm launching the job from a client. I have simply replaced the hadoop core > jar by the one from the HBase 0.90.0, I'm not using it directly. > The old jar has been replaced everywhere in the cluster, I have verified. > Concerning the classpath, here is the one returned by the rowcounter example > : > > 11/03/14 22:43:10 INFO zookeeper.ZooKeeper: Client > environment:java.class.path=/root/softwares/hadoop-0.20.2/bin/../conf:/usr/lib/jvm/java-6-sun//lib/tools.jar:/root/softwares/hadoop-0.20.2/bin/..:/root/softwares/hadoop-0.20.2/bin/../hadoop-0.20.2-core.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-cli-1.2.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-codec-1.3.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-el-1.0.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-httpclient-3.0.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-logging-1.0.4.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-logging-api-1.0.4.jar:/root/softwares/hadoop-0.20.2/bin/../lib/commons-net-1.4.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/core-3.1.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/hsqldb-1.8.0.10.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jasper-compiler-5.5.12.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jasper-runtime-5.5.12.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jets3t-0.6.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jetty-6.1.14.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jetty-util-6.1.14.jar:/root/softwares/hadoop-0.20.2/bin/../lib/junit-3.8.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/kfs-0.2.2.jar:/root/softwares/hadoop-0.20.2/bin/../lib/log4j-1.2.15.jar:/root/softwares/hadoop-0.20.2/bin/../lib/mockito-all-1.8.0.jar:/root/softwares/hadoop-0.20.2/bin/../lib/oro-2.0.8.jar:/root/softwares/hadoop-0.20.2/bin/../lib/servlet-api-2.5-6.1.14.jar:/root/softwares/hadoop-0.20.2/bin/../lib/slf4j-api-1.4.3.jar:/root/softwares/hadoop-0.20.2/bin/../lib/slf4j-log4j12-1.4.3.jar:/root/softwares/hadoop-0.20.2/bin/../lib/xmlenc-0.52.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jsp-2.1/jsp-2.1.jar:/root/softwares/hadoop-0.20.2/bin/../lib/jsp-2.1/jsp-api-2.1.jar:/root/softwares/hbase-0.90.0/hbase-0.90.0.jar:/root/softwares/hbase-0.90.0/conf:/root/softwares/hbase-0.90.0/lib/zookeeper-3.3.2.jar:/root/softwares/hbase-0.90.0/hbase-0.90.0-tests.jar > > note that /root/softwares/hadoop-0.20.2 is the directory that contains the > replaced hadoop core. > > The rowcounter example returns the same error. What's driving me crazy is > that the same hadoop installation (I've moved the whole directory through > ssh) is working on another cluster but not on this one! The configurations > are almost the same on the two clusters. > > I have also tried to print the HADOOP_CLASSPATH variable but it only > returns the HBase jars... > > > 2011/3/14 Stack <[email protected]> > >> How are you launching the job? Code looks 'right' (except for the new >> HBaseConfiguration instead of doing HBaseConfiguration.create()). How >> are you using hadoop-core*append*.jar? You putting it everywhere in >> your cluster making sure the old hadoop jar is not in the cluster >> CLASSPATH? >> >> If you run our rowcounter, does that work? >> >> $ ./bin/hadoop jar hbase*.jar rowcounter >> >> St.Ack >> >> >> On Mon, Mar 14, 2011 at 3:05 AM, Thibault Dory <[email protected]> >> wrote: >> > Hello, >> > >> > I'm trying to run a MapReduce job on a Hadoop cluster 0.20.2 using >> > the hadoop-core-0.20-append-r1056497.jar from HBase 0.90.0 but when I >> start >> > the job I run into this error : >> > >> > 2011-03-13 14:48:22,935 INFO org.apache.hadoop.mapred.TaskInProgress: >> Error >> > from attempt_201103131344_0016_m_000081_3: java.lang.ClassCastException: >> > org.apache.hadoop.hbase.mapreduce.TableSplit cannot be cast to >> > org.apache.hadoop.mapred.InputSplit >> > at >> org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:323) >> > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307) >> > at org.apache.hadoop.mapred.Child.main(Child.java:170) >> > >> > It looks like hadoop is using the old mapred API instead of the new >> > mapreduce one. The HBase jar files are provided in the Hadoop path. >> > >> > The code of the MapReduce job can be seen here : >> > >> https://github.com/toflames/Wikipedia-noSQL-Benchmark/blob/master/src/hbase_mapreduce/MapReduceHbaseDB.java >> > >> > HBase is working well for read/write/update operations. >> > >> > Any idea of what could be causing this? >> > >> > >
