@Override
    public void apply(final Traversal.Admin<?, ?> traversal) {
        // since hadoopgraph can't be modified we can't try to use the existing IoStep for standard processing
        // without graphcomputer
        if (traversal.getStartStep() instanceof IoStep)
            throw new VerificationException("HadoopGraph requires a GraphComputer for io() step", traversal);

        // VertexProgramStrategy should wrap up the IoStep in a TraversalVertexProgramStep. use that to grab the
        // GraphComputer that was injected in there and push that in to the HadoopIoStep. this step pattern match
        // is fairly specific and since you really can't chain together steps after io() this approach should work
        if (traversal.getStartStep() instanceof TraversalVertexProgramStep) {
            final TraversalVertexProgramStep tvp = (TraversalVertexProgramStep) traversal.getStartStep();
            if (tvp.computerTraversal.get().getStartStep() instanceof ReadWriting) {
                final ReadWriting readWriting = (ReadWriting) tvp.computerTraversal.get().getStartStep();
                final HadoopIoStep hadoopIoStep = new HadoopIoStep(traversal, readWriting.getFile());
                hadoopIoStep.setMode(readWriting.getMode());
                hadoopIoStep.setComputer(tvp.getComputer());
                readWriting.getParameters().getRaw().forEach((key, value) -> value.forEach(v -> hadoopIoStep.configure(key, v)));

                TraversalHelper.replaceStep(tvp, hadoopIoStep, traversal);
            }
        }
    }
The default implementation of the {@link IoStep} is a single threaded operation and doesn't properly take into
account the method by which OLAP read/writes take place with Hadoop. This strategy removes that step and replaces
it with the {@link HadoopIoStep} which is a {@link VertexProgramStep} that uses the {@link CloneVertexProgram} to
execute the IO operation in an OLAP fashion.

@author Stephen Mallette (http://stephen.genoprime.com)
hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/traversal/strategy/HadoopIoStrategy.java