Ok, start of a patch for this attached.
I wasn't sure if the "conf." prefix is required, so patch has this as a
comment.
Attached, doh.
C
Index: src/org/apache/pig/tools/grunt/GruntParser.java
===================================================================
--- src/org/apache/pig/tools/grunt/GruntParser.java (revision 628031)
+++ src/org/apache/pig/tools/grunt/GruntParser.java (working copy)
@@ -143,13 +143,19 @@
//mPigServer.setJobName(unquote(value));
mPigServer.setJobName(value);
}
- else
+ else /* if (key.startsWith("conf.")) */
{
+ /* key = key.replaceAll("^conf.",""); */
+ mPigServer.getPigContext().setConfProperty(key, value);
+ }
+ /*
+ else {
// other key-value pairs can go there
// for now just throw exception since we don't support
// anything else
throw new ParseException("Unrecognized set key: " + key);
- }
+ }*/
+
}
protected void processStore(String alias, String file, String func) throws
IOException {
Index: src/org/apache/pig/impl/PigContext.java
===================================================================
--- src/org/apache/pig/impl/PigContext.java (revision 628031)
+++ src/org/apache/pig/impl/PigContext.java (working copy)
@@ -295,6 +295,14 @@
return conf;
}
+ public String getConfProperty(String key, String defaultValue) {
+ return conf.getProperty(key, defaultValue);
+ }
+
+ public void setConfProperty(String key, String value) {
+ conf.setProperty(key, value);
+ }
+
/**
* Defines an alias for the given function spec. This
* is useful for functions that require arguments to the
Index: src/org/apache/pig/Main.java
===================================================================
--- src/org/apache/pig/Main.java (revision 628031)
+++ src/org/apache/pig/Main.java (working copy)
@@ -141,9 +141,9 @@
case 'o': {
String gateway = System.getProperty("ssh.gateway");
if (gateway == null || gateway.length() == 0) {
- System.setProperty("hod.server", "local");
+ pigContext.setConfProperty("hod.server", "local");
} else {
- System.setProperty("hod.server",
System.getProperty("ssh.gateway"));
+ pigContent.setConfProperty("hod.server",
System.getProperty("ssh.gateway"));
}
break;
}
Index: src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
===================================================================
--- src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
(revision 628031)
+++ src/org/apache/pig/backend/hadoop/executionengine/HExecutionEngine.java
(working copy)
@@ -109,7 +109,7 @@
//First set the ssh socket factory
setSSHFactory();
- String hodServer = System.getProperty("hod.server");
+ String hodServer = pigContext.getConfProperty("hod.server");
if (hodServer != null && hodServer.length() > 0) {
String hdfsAndMapred[] = doHod(hodServer);
@@ -117,7 +117,7 @@
setJobtrackerLocation(hdfsAndMapred[1]);
}
else {
- String cluster = System.getProperty("cluster");
+ String cluster = pigContext.getConfProperty("cluster");
if (cluster != null && cluster.length() > 0) {
if(cluster.indexOf(':') < 0) {
cluster = cluster + ":50020";
@@ -125,7 +125,7 @@
setJobtrackerLocation(cluster);
}
- String nameNode = System.getProperty("namenode");
+ String nameNode = pigContext.getConfProperty("namenode");
if (nameNode!=null && nameNode.length() > 0) {
if(nameNode.indexOf(':') < 0) {
nameNode = nameNode + ":8020";
@@ -293,7 +293,7 @@
}
private void setSSHFactory(){
- String g = System.getProperty("ssh.gateway");
+ String g = pigContext.getConfProperty("ssh.gateway");
if (g == null || g.length() == 0) return;
try {
Class clazz =
Class.forName("org.apache.pig.shock.SSHSocketImplFactory");
@@ -324,25 +324,25 @@
// Make the kryptonite released version the default if nothing
// else is specified.
StringBuilder cmd = new StringBuilder();
- cmd.append(System.getProperty("hod.expect.root"));
+ cmd.append(pigContext.getConfProperty("hod.expect.root"));
cmd.append('/');
cmd.append("libexec/pig/");
- cmd.append(System.getProperty("hod.expect.uselatest"));
+ cmd.append(pigContext.getConfProperty("hod.expect.uselatest"));
cmd.append('/');
- cmd.append(System.getProperty("hod.command"));
+ cmd.append(pigContext.getConfProperty("hod.command"));
- String cluster = System.getProperty("yinst.cluster");
+ String cluster = pigContext.getConfProperty("yinst.cluster");
// TODO This is a Yahoo specific holdover, need to remove
// this.
if (cluster != null && cluster.length() > 0 &&
!cluster.startsWith("kryptonite")) {
cmd.append(" --config=");
- cmd.append(System.getProperty("hod.config.dir"));
+ cmd.append(pigContext.getConfProperty("hod.config.dir"));
cmd.append('/');
cmd.append(cluster);
}
- cmd.append(" " + System.getProperty("hod.param", ""));
+ cmd.append(" " + pigContext.getConfProperty("hod.param", ""));
if (server.equals("local")) {
p = Runtime.getRuntime().exec(cmd.toString());