TODO: Some of these things need to move into hadoop-util.
delete-file-recursively is preemptive delete on exiting the code
block for repl and tests run in the same process.
(delete-all-fs fs paths)
(delete-file-recursively f & [silently])
Delete file f. If it's a directory, recursively delete all its contents.
Raise an exception if any deletion fails unless silently is true.
Extracts a byte array from a Hadoop BytesWritable object. As
mentioned in the [BytesWritable javadoc](http://goo.gl/cjjlD), only
the first N bytes are valid, where N = `(.getLength byteswritable)`.
1) creates a directory in System.getProperty("java.io.tmpdir")
2) calls tempDir.deleteOn Exit() so the file is deleted by the jvm.
deleteOnExit is last resort cleanup on jvm exit.
Use this variable as key in JobConf if you want to override the
root of temporary paths. See with-fs-tmp.
(with-fs-tmp [fs-sym & tmp-syms] & body)
Generates unique, temporary path names as subfolders of <root>/cascalog_reserved.
<root> by default will be '/tmp', but you can configure it via the
JobConf property `cascalog.io/tmp-dir-property`.
(with-log-level level & body)
(with-tmp-files bindings & body)
(write-lines f lines)
Writes lines (a seq) to f, separated by newlines. f is opened with
writer, and automatically closed at the end of the sequence.