You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-user@hadoop.apache.org by Keith Wiley <kw...@keithwiley.com> on 2010/04/12 23:08:31 UTC

Failure to find shared lib in distributed cache

I've been steadily adding more and more shared libraries to the -files option of my pipes command and have had moderate success in that each time I add a new library the app no longer fails on that library, but rather on the next one.

However, I've hit a snag.  I'm getting the following error even though this file is being added to the distributed cache:

stderr logs
[CRAZY_LONG_PATH]/MyPipesApp: error while loading shared libraries: libboost_system-gcc41-mt-1_37.so.1.37.0: cannot open shared object file: No such file or directory

Despite the fact that the file clearly does exist:

$ hadoop fs -ls /uwphysics/kwiley/mosaic/c++_bin
Found 14 items
...
-rw-r--r--   1 kwiley uwphysics      12144 2010-04-12 13:38 /uwphysics/kwiley/mosaic/c++_bin/libboost_system-gcc41-mt-1_37.so.1.37.0
...

Here's my run command:

$ hadoop pipes -D hadoop.pipes.java.recordreader=true -D hadoop.pipes.java.recordwriter=true -files \
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
hdfs://[HDFS SITE]/uwphysics/kwiley/mosaic/c++_bin/libboost_system-gcc41-mt-1_37.so.1.37.0, \
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
-input /uwphysics/kwiley/mosaic/input -output /uwphysics/kwiley/mosaic/output -program /uwphysics/kwiley/mosaic/c++_bin/MyPipesApp

Note that this is working for a number of other shared libraries all stored in the same directory on HDFS, so it isn't simply a minor path error.  It's more serious than that.  I'm open to suggestions as to how to go about fixing this.

Thanks.

________________________________________________________________________________
Keith Wiley               kwiley@keithwiley.com               www.keithwiley.com

"The easy confidence with which I know another man's religion is folly teaches
me to suspect that my own is also."
  -- Mark Twain
________________________________________________________________________________




Re: Failure to find shared lib in distributed cache

Posted by Keith Wiley <kw...@keithwiley.com>.
I love working on a problem for an hour, sending an email for help, then solving it.  Problem was the space after the comma in the -files option:

$ hadoop pipes -D hadoop.pipes.java.recordreader=true -D hadoop.pipes.java.recordwriter=true -files \
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
hdfs://[HDFS SITE]/uwphysics/kwiley/mosaic/c++_bin/libboost_system-gcc41-mt-1_37.so.1.37.0, \
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
-input /uwphysics/kwiley/mosaic/input -output /uwphysics/kwiley/mosaic/output -program /uwphysics/kwiley/mosaic/c++_bin/MyPipesApp

should have been:

$ hadoop pipes -D hadoop.pipes.java.recordreader=true -D hadoop.pipes.java.recordwriter=true -files \
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
hdfs://[HDFS SITE]/uwphysics/kwiley/mosaic/c++_bin/libboost_system-gcc41-mt-1_37.so.1.37.0,\    <==== NO SPACE AFTER THE COMMA
...[SEVERAL .so FILES TO DISTRIBUTED CACHE]
-input /uwphysics/kwiley/mosaic/input -output /uwphysics/kwiley/mosaic/output -program /uwphysics/kwiley/mosaic/c++_bin/MyPipesApp

Makes perfect sense in hindsight.  Perhaps others will benefit from the wisdom this thread imparts.

Cheers!

________________________________________________________________________________
Keith Wiley               kwiley@keithwiley.com               www.keithwiley.com

"It's a fine line between meticulous and obsessive-compulsive and a slippery
rope between obsessive compulsive and debilitatingly slow."
  -- Keith Wiley
________________________________________________________________________________