I am using streaming with perl, and I want to get jobconf variable values. As
many tutorials say they are in environment, but I can not get them.
For example, in reducer:
while (<STDIN>){
my $part = $ENV{"mapred.task.partition"};
print ("$part\n");
}
It turns out that $ENV{"mapred.task.partition"} is not defined.
HOWEVER, I can get myself defined variable value. For example:
$HADOOP_HOME/bin/hadoop \
jar $HADOOP_HOME/hadoop-streaming.jar \
-input file1 \
-output myOutputDir \
-mapper mapper \
-reducer reducer \
-jobcont arg=test
In reducer:
while (<STDIN>){
my $part2 = $ENV{"arg"};
print ("$part2\n");
}
It works.
Anybody knows why is that? How to get jobconf variables in streaming? Thanks
lot!