Difficulty accessing command line function return value (Hadoop FS shell)


#1

I’m attempting to use Hadoop FS shell (
http://hadoop.apache.org/core/docs/current/hdfs_shell.html) within a
ruby
script. My challenge is that I’m unable to get the function return value
of
the commands I’m invoking. As an example Hadoop FS shell command, I try
to
run get (http://hadoop.apache.org/core/docs/current/hdfs_shell.html#get)
as
follows

hadoop fs -get /user/hadoop/testFile.txt .

This should copy the file testFile.txt to my local directory. From the
command line this generally works but I need to be able to verify that
it is
working in my ruby script. The command should return 0 on success and -1
on
error. Based on

http://pasadenarb.com/2007/03/ruby-shell-commands.html

I have assumed that I should use backticks to make the hadoop call and
get
the return value. Here is a dialogue within irb in which the command was
not
successful:

irb(main):001:0> hadoop dfs -get testFile.txt .
get: null
=> “”

and a dialogue within irb in which the command was successful

irb(main):010:0> hadoop dfs -get testFile.txt .
=> “”

In both cases, neither a 0 nor a 1 appeared as a return value; indeed
nothing was returned. I’m considering posting this as a bug on the
Hadoop
site but I want to make sure that I’m not doing something wrong from a
Ruby
point of view.

Your help is appreciated.

Thanks,
John