diff --git a/src/main/java/org/apache/pirk/responder/wideskies/ResponderCLI.java b/src/main/java/org/apache/pirk/responder/wideskies/ResponderCLI.java
index 273aaae..ff43be6 100644
--- a/src/main/java/org/apache/pirk/responder/wideskies/ResponderCLI.java
+++ b/src/main/java/org/apache/pirk/responder/wideskies/ResponderCLI.java
@@ -218,6 +218,20 @@
     optionEsQuery.setType(String.class);
     options.addOption(optionEsQuery);
 
+    // esNodes
+    Option optionEsNodes = new Option("en", ResponderProps.ESNODES, true, "required if baseInputFormat = 'elasticsearch' -- ElasticSearch node in the cluster");
+    optionEsNodes.setRequired(false);
+    optionEsNodes.setArgName(ResponderProps.ESNODES);
+    optionEsNodes.setType(String.class);
+    options.addOption(optionEsNodes);
+
+    // esPort
+    Option optionEsPort = new Option("ep", ResponderProps.ESPORT, true, "required if baseInputFormat = 'elasticsearch' -- ElasticSearch cluster port");
+    optionEsPort.setRequired(false);
+    optionEsPort.setArgName(ResponderProps.ESQUERY);
+    optionEsPort.setType(String.class);
+    options.addOption(optionEsPort);
+
     // outputFile
     Option optionOutputFile = new Option("o", ResponderProps.OUTPUTFILE, true, "required -- Fully qualified name of output file in hdfs");
     optionOutputFile.setRequired(false);
diff --git a/src/main/java/org/apache/pirk/responder/wideskies/ResponderProps.java b/src/main/java/org/apache/pirk/responder/wideskies/ResponderProps.java
index 6dbf030..a9f8fae 100644
--- a/src/main/java/org/apache/pirk/responder/wideskies/ResponderProps.java
+++ b/src/main/java/org/apache/pirk/responder/wideskies/ResponderProps.java
@@ -46,6 +46,8 @@
   public static final String BASEQUERY = "pir.baseQuery";
   public static final String ESRESOURCE = "pir.esResource";
   public static final String ESQUERY = "pir.esQuery";
+  public static final String ESNODES = "es.nodes";
+  public static final String ESPORT = "es.port";
   public static final String BASEINPUTFORMAT = "pir.baseInputFormat";
   public static final String STOPLISTFILE = "pir.stopListFile";
   public static final String QUERYSCHEMAS = "responder.querySchemas";
@@ -66,8 +68,8 @@
   static final String NUMDATAPARTITIONS = "pir.numDataPartitions";
   static final String ALLOWEMBEDDEDQUERYSCHEMAS = "pir.allowEmbeddedQuerySchemas";
 
-  static final List<String> PROPSLIST = Arrays.asList(PLATFORM, QUERYINPUT, DATAINPUTFORMAT, INPUTDATA, BASEQUERY, ESRESOURCE, ESQUERY, OUTPUTFILE,
-      BASEINPUTFORMAT, STOPLISTFILE, NUMREDUCETASKS, USELOCALCACHE, LIMITHITSPERSELECTOR, MAXHITSPERSELECTOR, MAPMEMORY, REDUCEMEMORY, MAPJAVAOPTS,
+  static final List<String> PROPSLIST = Arrays.asList(PLATFORM, QUERYINPUT, DATAINPUTFORMAT, INPUTDATA, BASEQUERY, ESRESOURCE, ESQUERY, ESNODES, ESPORT,
+      OUTPUTFILE, BASEINPUTFORMAT, STOPLISTFILE, NUMREDUCETASKS, USELOCALCACHE, LIMITHITSPERSELECTOR, MAXHITSPERSELECTOR, MAPMEMORY, REDUCEMEMORY, MAPJAVAOPTS,
       REDUCEJAVAOPTS, QUERYSCHEMAS, DATASCHEMAS, NUMEXPLOOKUPPARTS, USEHDFSLOOKUPTABLE, NUMDATAPARTITIONS, NUMCOLMULTPARTITIONS, USEMODEXPJOIN,
       COLMULTREDUCEBYKEY, ALLOWEMBEDDEDQUERYSCHEMAS);
 
@@ -147,6 +149,18 @@
         logger.info("For ElasticSearch inputformat: Must have the option " + ESQUERY);
         valid = false;
       }
+
+      if (!SystemConfiguration.hasProperty(ESNODES))
+      {
+        logger.info("For ElasticSearch inputformat: Must have the option " + ESNODES);
+        valid = false;
+      }
+
+      if (!SystemConfiguration.hasProperty(ESPORT))
+      {
+        logger.info("For ElasticSearch inputformat: Must have the option " + ESPORT);
+        valid = false;
+      }
     }
     else if (dataInputFormat.equalsIgnoreCase("standalone"))
     {
diff --git a/src/main/java/org/apache/pirk/test/distributed/testsuite/DistTestSuite.java b/src/main/java/org/apache/pirk/test/distributed/testsuite/DistTestSuite.java
index 12a941e..bc59619 100644
--- a/src/main/java/org/apache/pirk/test/distributed/testsuite/DistTestSuite.java
+++ b/src/main/java/org/apache/pirk/test/distributed/testsuite/DistTestSuite.java
@@ -407,6 +407,8 @@
       {
         args.add("-" + ResponderProps.ESQUERY + "=" + SystemConfiguration.getProperty("pir.esQuery"));
         args.add("-" + ResponderProps.ESRESOURCE + "=" + SystemConfiguration.getProperty("pir.esResource"));
+        args.add("-" + ResponderProps.ESNODES + "=" + SystemConfiguration.getProperty(DistributedTestDriver.ES_INPUT_NODES_PROPERTY));
+        args.add("-" + ResponderProps.ESPORT + "=" + SystemConfiguration.getProperty(DistributedTestDriver.ES_INPUT_PORT_PROPERTY));
       }
 
       for (String arg : args)
