This is what I do to solve the problem below.
I used cygserver to start the tasktracker, instead using the Java Wrapper Service. And now my cluster can work correctly.
In your cygwin bash window, you can try this command:
cygrunsrv --install "Hadoop TaskTracker" -p /usr/local/hadoop/bin/hadoop -a tasktracker -c /usr/local/hadoop -t auto -u <your username> -n -O -y "Hadoop DataNode"
Although I know that my solution does not actually solve the problem listed below, it may be a temporary solution for now. I welcome any appropriate solution when it appears.
As there are a lot of unused Windows-based computer during weekends and holidays, the Hadoop cluster is mostly made up of Windows-based nodes. As Hadoop is a Java platform, it has a higher chance of having many different configurations of computers (Windows-based/Linux-based/others) linked to form a (possibly free) cluster and thus truly cross-platform.
So to the Hadoop community, please do not give up on making Hadoop being truly cross-platform.
I am currently writing a Web Service for the Hadoop cluster in my University to be accessed over the Internet, thus currently busy with my project. If possible after my project, I hope that I can contribute to make Hadoop truly cross-platform.
I have managed to run my hadoop cluster (3-nodes, TT/JT and NN/DN) currently by using Windows Service via Java Wrapper Service. But my tasktracker seems unable to run any task.
I thought the spawn jvm will inherit the classpath of the parent jvm, even starting using Windows. Is Windows the cause? If it is the cause, is there any other way that I can do via configuration to solve this problem?
Below is the logs
Log By One Of The Map Task Attempt (attempt_200909071902_0006_m_000004_3)
java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/Child Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.Child at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) Exception in thread "main"
Log In The TaskTracker (for the above attempt)
2009-09-07 19:21:42,181 INFO org.apache.hadoop.mapred.TaskTracker: addFreeSlot : current free slots : 2
2009-09-07 19:21:42,181 INFO org.apache.hadoop.mapred.TaskTracker: LaunchTaskAction (registerTask): attempt_200909071902_0006_m_000004_3 task's state:UNASSIGNED
2009-09-07 19:21:42,181 INFO org.apache.hadoop.mapred.TaskTracker: Trying to launch : attempt_200909071902_0006_m_000004_3
2009-09-07 19:21:42,181 INFO org.apache.hadoop.mapred.TaskTracker: In TaskLauncher, current free slots : 2 and trying to launch attempt_200909071902_0006_m_000004_3
2009-09-07 19:21:42,243 INFO org.apache.hadoop.mapred.JvmManager: In JvmRunner constructed JVM ID: jvm_200909071902_0006_m_1046393994
2009-09-07 19:21:42,243 INFO org.apache.hadoop.mapred.JvmManager: JVM Runner jvm_200909071902_0006_m_1046393994 spawned.
2009-09-07 19:21:42,743 WARN org.apache.hadoop.mapred.TaskRunner: attempt_200909071902_0006_m_000004_3 Child Error
java.io.IOException: Task process exit with nonzero status of 1.
2009-09-07 19:21:42,743 INFO org.apache.hadoop.mapred.JvmManager: JVM : jvm_200909071902_0006_m_1046393994 exited. Number of tasks it ran: 0
2009-09-07 19:21:45,743 INFO org.apache.hadoop.mapred.TaskRunner: attempt_200909071902_0006_m_000004_3 done; removing files.
Grokbase › Groups › Hadoop › common-user › October 2009