10 from optparse
import OptionParser
11 from kmrfsplit
import *
12 from kmrgenscript
import *
17 if __name__ ==
"__main__":
19 usage =
"usage: %prog [options] -m mapper -r reducer inputfile" 20 parser = OptionParser(usage)
22 parser.add_option(
"-n",
23 "--number-of-separation",
26 help=
"number of file separate",
30 parser.add_option(
"-e",
31 "--number-of-exec-nodes",
34 help=
"number of execute nodes",
38 parser.add_option(
"-s",
42 help=
"separator string",
46 parser.add_option(
"-p",
47 "--separate-file-prefix",
50 help=
"separate filename prefix",
54 parser.add_option(
"-o",
58 help=
"output filename prefix",
62 parser.add_option(
"-d",
66 help=
"work directory",
70 parser.add_option(
"-O",
74 help=
"output directory",
78 parser.add_option(
"-t",
86 parser.add_option(
"-m",
93 parser.add_option(
"-r",
100 parser.add_option(
"-S",
104 help=
"scheduler (default is 'K')",
108 parser.add_option(
"-w",
109 "--write-scriptfile",
112 help=
"script filename",
115 parser.add_option(
"-f",
122 (options, args) = parser.parse_args()
127 parser.error(
"missing parameter")
132 if options.nodes > options.nums :
133 print(
'Error: number of execute nodes must be less than or equal to number of file separation.')
138 if options.nodes < options.nums :
143 if not os.path.exists(inputfile) :
144 print(
'Error: inputfile %s is not exist.' % inputfile)
147 if os.path.exists(options.workdir) :
148 if not os.path.isdir(options.workdir) :
149 print(
'Error: "%s" is not directory.' % options.workdir)
154 os.mkdir(options.workdir)
156 print(
'Error: could not create "%s".' % options.workdir)
159 print(
'Error: directory "%s" is not exist. create it or use -f option.' % options.workdir)
162 splitfile(options.nums, options.sep, options.workdir, options.prefix, inputfile)
164 selectscheduler(options.nodes, options.prefix, options.outfile,
165 options.workdir, options.outdir, options.rsctime,
166 options.mapper, options.reducer, multi,
167 options.sched, options.scrfile)