MapReduce Tutorial : If things go wrong
A lot can go wrong in the process of creating cluster and submitting the Hadoop job:
Hadoop::Runner.pm
module not found: The Perl Hadoop package is not configured, see Setting the environment.ipc.Client: Retrying connect to server: IP_ADDRESS:PORT. Already tried ? time(s)
: The jobtracker cannot be contacted. If using-jt jobtracker:port
flag, check, that the jobtracker address is correct./net/projects/hadoop/bin/hadoop-cluster
fails to start a cluster: Look where the jobtracker was scheduled by SGE usingqstat
. Login to that machine and investigate logs in/var/log/hadoop/$USER/$SGE_JOBID/
.
If the cluster works, but your job crashes, you can:
- run the computation locally in single threaded mode (i.e., without specifying
-c
and-jt
flag). This is more useful for Hadoop jobs written in Java, because then you can use a debugger. When using Perl API, new subprocess are created for Perl tasks anyway. - use the web interface to see Java exceptions / Perl return codes for each failed task attempt.
- use standard error output for log messages. You can access the stderr logs of all Hadoop tasks using the web interface.