code: public static Job createSubmittableJob(Configuration conf, String[] args)
    throws IOException {
      conf.setIfUnset("hbase.client.connection.impl",
        BigtableConfiguration.getConnectionClass().getName());
      conf.setIfUnset(BigtableOptionsFactory.BIGTABLE_RPC_TIMEOUT_MS_KEY, "60000");
      conf.setBoolean(TableInputFormat.SHUFFLE_MAPS, true);
  
      String tableName = args[0];
      Path outputDir = new Path(args[1]);
      Job job = Job.getInstance(conf, NAME + "_" + tableName);
      job.setJobName(NAME + "_" + tableName);
      job.setJarByClass(Export.class);
      // Set optional scan parameters
      Scan s = getConfiguredScanForJob(conf, args);
      TableMapReduceUtil.initTableMapperJob(tableName, s, IdentityTableMapper.class, ImmutableBytesWritable.class, Result.class, job, false);
      // No reducers.  Just write straight to output files.
      job.setNumReduceTasks(0);
      job.setOutputFormatClass(SequenceFileOutputFormat.class);
      job.setOutputKeyClass(ImmutableBytesWritable.class);
      job.setOutputValueClass(Result.class);
      FileOutputFormat.setOutputPath(job, outputDir); // job conf doesn't contain the conf so doesn't have a default fs.
      return job;
    }
docs: Sets up the actual job.
  
  @param conf  The current configuration.
  @param args  The command line parameters.
  @return The newly created job.
  @throws java.io.IOException When setting up the job fails.