Update submit_job_hadoop.py

This commit is contained in:
Tianqi Chen 2014-12-05 09:14:44 -08:00
parent e05098cacb
commit e7a22792ac

View File

@ -7,15 +7,7 @@ import sys
import os import os
import subprocess import subprocess
sys.path.append('./src/') sys.path.append('./src/')
from rabit_master import Master import rabit_master as master
from threading import Thread
def hadoop_streaming(nslaves, slave_args):
cmd = '%s jar %s -input %s -output %s -mapper \"%s %s\" -reducer /bin/cat stdin %d %d stdout' % (args.hadoop_binary, args.hadoop_streaming_jar, args.input, args.output, args.mapper, ' '.join(slave_args), args.nclusters, args.iterations)
print cmd
subprocess.check_call(cmd, shell = True)
parser = argparse.ArgumentParser(description='Hadoop Streaming submission script') parser = argparse.ArgumentParser(description='Hadoop Streaming submission script')
parser.add_argument('-s', '--nslaves', required=True, type=int) parser.add_argument('-s', '--nslaves', required=True, type=int)
@ -29,11 +21,9 @@ parser.add_argument('-k', '--nclusters', required=True, type=int)
parser.add_argument('-itr', '--iterations', required=True, type=int) parser.add_argument('-itr', '--iterations', required=True, type=int)
args = parser.parse_args() args = parser.parse_args()
master = Master() def hadoop_streaming(nslaves, slave_args):
# this is availabe after triggered the hadoop streaming job, not sure how to do it cmd = '%s jar %s -input %s -output %s -mapper \"%s %s\" -reducer /bin/cat stdin %d %d stdout' % (args.hadoop_binary, args.hadoop_streaming_jar, args.input, args.output, args.mapper, ' '.join(slave_args), args.nclusters, args.iterations)
# os.environ["mapred_job_id"] print cmd
slave_args = ['master_uri=%s' % 'TODO', 'master_port=%s' % 'TODO'] subprocess.check_call(cmd, shell = True)
submit_thread = Thread(target = hadoop_streaming, args = slave_args)
submit_thread.start() master.submit(args.nslaves, [], fun_submit= hadoop_streaming)
master.accept_slaves(args.nslaves)
submit_thread.join()