According to the documentation there are two ways to run HBase M/R jobs:

1. The HBase book states to run M/R jobs like export here: 
http://hbase.apache.org/book/ops_mgt.html#export
bin/hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> 
[<versions> [<starttime> [<endtime>]]]

2. Whereas the Javadoc says here: 
http://hbase.apache.org/docs/current/api/org/apache/hadoop/hbase/mapreduce/package-summary.html#package_description
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` ${HADOOP_HOME}/bin/hadoop 
jar ${HBASE_HOME}/hbase-0.90.0.jar export ...


In the first case (#1) I find that the job allways fails to create the output 
dir:
java.io.IOException: Mkdirs failed to create 
file:/exports/_temporary/_attempt_local_0001_m_000000_0
    at 
org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:378)

...


In the 2nd case (#2) I get past the creation of the output dir, and then it 
fails because it cannot find class com.google.protobuf.Message.
I am using the HBase security branch and find that I need to add 
com.google.protobuf.Message.class in TableMapReduceUtil.addDependencyJars.
If I do that, I can successfully run an export jobs using method #2.


The 2nd issue I found looks like a bug with the HBase security branch.
I am not sure about the first issue, is the documentation in the HBase book 
outdated?


-- Lars

Reply via email to