From: Greg Farnum Date: Thu, 6 Aug 2009 23:04:25 +0000 (-0700) Subject: Hadoop: libhadoopcephfs now links against libceph X-Git-Tag: v0.13~123^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e15c40a7c0b8b62dc93a486c845337b7ef041fb5;p=ceph.git Hadoop: libhadoopcephfs now links against libceph rather than incorporating it; the Java code accounts for this and loads based on a configuration setting -- no more worries about java.library.path. --- diff --git a/src/Makefile.am b/src/Makefile.am index 9e96e76f7035..0dfbac719792 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -171,7 +171,8 @@ BUILT_SOURCES += libcls_acl.so ## hadoop client if WITH_HADOOPCLIENT JAVA_BASE = /usr/lib/jvm/java-6-sun -libhadoopcephfs_la_SOURCES = client/hadoop/CephFSInterface.cc ${libceph_la_SOURCES} +libhadoopcephfs_la_SOURCES = client/hadoop/CephFSInterface.cc +libhadoopcephfs_la_LIBADD = libceph.la libcrush.la libhadoopcephfs_la_CFLAGS = ${AM_CFLAGS} libhadoopcephfs_la_CXXFLAGS = ${AM_CXXFLAGS} libhadoopcephfs_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex 'hadoopcephfs_.*' diff --git a/src/client/hadoop/ceph/CephFileSystem.java b/src/client/hadoop/ceph/CephFileSystem.java index 98d5c518c4ba..326dd16be06f 100644 --- a/src/client/hadoop/ceph/CephFileSystem.java +++ b/src/client/hadoop/ceph/CephFileSystem.java @@ -34,9 +34,7 @@ public class CephFileSystem extends FileSystem { private static final long DEFAULT_BLOCK_SIZE = 8 * 1024 * 1024; - static { - System.loadLibrary("hadoopcephfs"); - } + private URI uri; @@ -96,6 +94,8 @@ public class CephFileSystem extends FileSystem { @Override public void initialize(URI uri, Configuration conf) throws IOException { debug("initialize:enter"); + System.load(conf.get("fs.ceph.libDir")+"/libhadoopcephfs.so"); + System.load(conf.get("fs.ceph.libDir")+"/libceph.so"); super.initialize(uri, conf); //store.initialize(uri, conf); setConf(conf); diff --git a/src/client/hadoop/ceph/CephInputStream.java b/src/client/hadoop/ceph/CephInputStream.java index 2324872b3923..b6954d0bafaa 100644 --- a/src/client/hadoop/ceph/CephInputStream.java +++ b/src/client/hadoop/ceph/CephInputStream.java @@ -53,7 +53,8 @@ class CephInputStream extends FSInputStream { */ public CephInputStream(Configuration conf, int fh, long flength) { - + System.load(conf.get("fs.ceph.libDir")+"/libhadoopcephfs.so"); + System.load(conf.get("fs.ceph.libDir")+"/libceph.so"); // Whoever's calling the constructor is responsible for doing the actual ceph_open // call and providing the file handle. fileLength = flength; diff --git a/src/client/hadoop/ceph/CephOutputStream.java b/src/client/hadoop/ceph/CephOutputStream.java index 1d37637ccb57..0df04882638e 100644 --- a/src/client/hadoop/ceph/CephOutputStream.java +++ b/src/client/hadoop/ceph/CephOutputStream.java @@ -78,6 +78,8 @@ class CephOutputStream extends OutputStream { // The file handle public CephOutputStream(Configuration conf, int fh) { + System.load(conf.get("fs.ceph.libDir")+"/libhadoopcephfs.so"); + System.load(conf.get("fs.ceph.libDir")+"/libceph.so"); fileHandle = fh; //fileLength = flength; closed = false;