The map task is actually completing but failing before it can communicate back to the task tracker, if you wait long enough this turns up in the hadoop logs
Once task has errored open the hadoop job logs e.g. brisk/logs/hadoop/userlogs/job_blah/attempt_blah/stdout.
This TLA appender is configured in resources/hadoop/conf/log4j.properties as an instance of org.apache.hadoop.mapred.TaskLogAppender and is set as the appender for the root logger in o.a.h.mapred.TaskRunner .
This is the TLA logger been configured the first time (from the stdout log above), reset() is called as part of opening the file. Whats happening here is correct…
log4j: Parsing appender named "TLA".
log4j: Parsing layout options for "TLA".
log4j: Setting property [conversionPattern] to [%d{ISO8601} %p %c: %m%n].
log4j: End of parsing for "TLA".
log4j: Setting property [isCleanup] to [false].
log4j: Setting property [totalLogFileSize] to [0].
log4j: Setting property [taskId] to [attempt_201108190021_0001_m_000000_0].
log4j: setFile called for [TLA]: /Users/aaron/frameworks/brisk/brisk-1.0~beta2/logs/hadoop/userlogs/job_201108190021_0001/attempt_201108190021_0001_m_000000_0/syslog, true
log4j: Reset called for appender [TLA].
log4j: java.lang.Thread.getStackTrace(Thread.java:1503)
org.apache.log4j.WriterAppender.reset(WriterAppender.java:350)
org.apache.log4j.FileAppender.reset(FileAppender.java:346)
org.apache.log4j.FileAppender.setFile(FileAppender.java:288)
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
org.apache.hadoop.mapred.TaskLogAppender.activateOptions(TaskLogAppender.java:48)
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:809)
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547)
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)
org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
org.apache.log4j.Logger.getLogger(Logger.java:104)
org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:229)
org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:65)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
org.apache.hadoop.mapred.Child.<clinit>(Child.java:61)
log4j: setFile ended for [TLA]: qw = [org.apache.log4j.helpers.QuietWriter@584fce71]
log4j: Parsed "TLA" options.
Now the bad stuff. reset() is been called on the appender, and this closes it and sets the qw (for QuietWriter) var to null, giving us the NPE later….
log4j: Reset called for appender [TLA].
log4j: java.lang.Thread.getStackTrace(Thread.java:1503)
org.apache.log4j.WriterAppender.reset(WriterAppender.java:350)
org.apache.log4j.FileAppender.reset(FileAppender.java:346)
org.apache.log4j.WriterAppender.close(WriterAppender.java:207)
org.apache.hadoop.mapred.TaskLogAppender.close(TaskLogAppender.java:77)
org.apache.log4j.helpers.AppenderAttachableImpl.removeAllAppenders(AppenderAttachableImpl.java:141)
org.apache.log4j.Category.removeAllAppenders(Category.java:891)
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:726)
org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:395)
org.apache.log4j.PropertyWatchdog.doOnChange(PropertyConfigurator.java:922)
org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:89)
org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:58)
org.apache.log4j.PropertyWatchdog.<init>(PropertyConfigurator.java:914)
org.apache.log4j.PropertyConfigurator.configureAndWatch(PropertyConfigurator.java:461)
org.apache.cassandra.service.AbstractCassandraDaemon.<clinit>(AbstractCassandraDaemon.java:100)
org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:356)
org.apache.cassandra.utils.FBUtilities.getLocalAddress(FBUtilities.java:175)
org.apache.cassandra.hadoop.fs.CassandraFileSystemThriftStore.initialize(CassandraFileSystemThriftStore.java:128)
org.apache.cassandra.hadoop.fs.CassandraFileSystem.initialize(CassandraFileSystem.java:59)
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1310)
org.apache.hadoop.fs.FileSystem.access$100(FileSystem.java:65)
org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1328)
org.apache.hadoop.fs.FileSystem.get(FileSystem.java:226)
org.apache.hadoop.fs.FileSystem.get(FileSystem.java:109)
org.apache.hadoop.mapred.Child$4.run(Child.java:258)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAs(Subject.java:396)
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
org.apache.hadoop.mapred.Child.main(Child.java:253)
The call stack shows AbstractCassandraDaemon spinning up and settings a log4j property watcher. This is closing all the appenders, you can see TaskLogAppender.close() in the stack .
The TLA appender has been closed and we are not watching the the property file that contains it's config. It's Deady Mc Dead Dead.
here are the links I've found about repositories, it's 1am now so will need to pick this up later…
Cheers