Difficulty accessing command line function return value (Hadoop FSshell)

S

S D

[Note: parts of this message were removed to make it a legal post.]

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top