'Get block locations from the Name Node. Returns an array of Block
instances that might look like:
[ Block(path=\'/user/todd/motd\', genStamp=1001, blockId=5564389078175231298,
nodes=[DatanodeInfo(xceiverCount=1, capacity=37265149952, name=\'127.0.0.1:50010\',
thriftPort=53417, state=1, remaining=18987925504, host=\'127.0.0.1\',
storageID=\'DS-1238582576-127.0.1.1-50010-1240968238474\', dfsUsed=36864)], numBytes=424)]'

@_coerce_exceptions
def _get_blocks(self, path, offset, length):

    path = encode_fs_path(path)
    blocks = self.nn_client.getBlocks(self.request_context, normpath(path), offset, length)
    def _fix_block(blk):
        blk.path = decode_fs_path(blk.path)
        return blk
    return [_fix_block(blk) for blk in blocks]
