Add --impalad_args to single_node_perf_run.py

This is useful for benchmarking non-standard configurations,
e.g. with mt_dop enabled.

Testing:
Ran the script, confirmed manually that the arguments took effect.

  single_node_perf_run.py <other args> \
      --impalad_args=--default_query_options=mt_dop=4 \
      --impalad_args=--unlock_mt_dop=true

Change-Id: Ib903f0eabb06a7e8981c874c8fe1cec0936b1a64
Reviewed-on: http://gerrit.cloudera.org:8080/14923
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Reviewed-by: Jim Apple <jbapple@apache.org>
diff --git a/bin/single_node_perf_run.py b/bin/single_node_perf_run.py
index ebe8382..6114223 100755
--- a/bin/single_node_perf_run.py
+++ b/bin/single_node_perf_run.py
@@ -116,9 +116,10 @@
   configured_call(["{0}/testdata/bin/run-all.sh".format(IMPALA_HOME)])
 
 
-def start_impala(num_impalads):
+def start_impala(num_impalads, options):
   configured_call(["{0}/bin/start-impala-cluster.py".format(IMPALA_HOME), "-s",
-                   str(num_impalads), "-c", str(num_impalads)])
+                   str(num_impalads), "-c", str(num_impalads)] +
+                  ["--impalad_args={0}".format(arg) for arg in options.impalad_args])
 
 
 def run_workload(base_dir, workloads, options):
@@ -231,7 +232,7 @@
 
   if options.start_minicluster:
     start_minicluster()
-  start_impala(options.num_impalads)
+  start_impala(options.num_impalads, options)
 
   workloads = set(options.workloads.split(","))
 
@@ -254,7 +255,7 @@
     sh.git.checkout("--", "testdata/workloads")
     build(hash_b, options)
     restore_workloads(workload_dir)
-    start_impala(options.num_impalads)
+    start_impala(options.num_impalads, options)
     run_workload(temp_dir, workloads, options)
     compare(temp_dir, hash_a, hash_b)
 
@@ -280,6 +281,9 @@
                     help="start a new Hadoop minicluster")
   parser.add_option("--ninja", action="store_true",
                     help = "use ninja, rather than Make, as the build tool")
+  parser.add_option("--impalad_args", dest="impalad_args", action="append", type="string",
+                    default=[],
+                    help="Additional arguments to pass to each Impalad during startup")
 
   parser.set_usage(textwrap.dedent("""
     single_node_perf_run.py [options] git_hash_A [git_hash_B]