Hi,

I am trying to run hadoop with ceph as the backend. I installed the 
libcephfs-jni and libcephfs-java to get the libcephfs.jar and the related .so 
libraries. Also I compiled the cephfs-hadoop-1.0-SNAPSHOT.jar from
https://github.com/GregBowyer/cephfs-hadoop since this was the only jar which 
had CephHadoop2FileSystem which was need to make ceph work with yarn.


I am able to browse the ceph through the hdfs commands e.g 'hdfs dfs -ls /' and 
also read files from ceph such as 'hdfs dfs -cat /xxxx', even the mkdir works, 
but when I try to write a file, it fails with the following exception


14/10/01 16:26:17 FATAL distributedshell.Client: Error running CLient
java.io.IOException: Operation not permitted
        at com.ceph.fs.CephMount.native_ceph_open(Native Method)
        at com.ceph.fs.CephMount.open(CephMount.java:545)
        at org.apache.hadoop.fs.ceph.CephTalker.__open(CephTalker.java:158)
        at 
org.apache.hadoop.fs.ceph.CephFileSystem.selectDataPool(CephFileSystem.java:308)
        at 
org.apache.hadoop.fs.ceph.CephFileSystem.create(CephFileSystem.java:433)
        at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906)
        at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887)
        at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:365)
        at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
        at 
org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1903)
        at 
org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1871)
        at 
org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1836)
        at 
org.apache.hadoop.yarn.applications.distributedshell.Client.addToLocalResources(Client.java:756)
        at 
org.apache.hadoop.yarn.applications.distributedshell.Client.run(Client.java:471)
        at 
org.apache.hadoop.yarn.applications.distributedshell.Client.main(Client.java:198)


>From a casual browse of the code, it seems that the error is generated from


public class CephFileSystem extends FileSystem {


private String selectDataPool(Path path, int repl_wanted) throws IOException {


int fd = ceph.__open(new Path("/"), CephMount.O_RDONLY, 0);



My core-site.xml looks like

  <property>
    <name>fs.defaultFS</name>
    <value>ceph://XX.XX.XX.XX:6789/</value>
  </property>
  <property>
    <name>hadoop.sharedtmp.dir1</name>
    <value>/mnt/mycephfs/hadoop-tmp/hadoop-${user.name}</value>
  </property>
  <property>
    <name>fs.ceph.impl</name>
    <value>org.apache.hadoop.fs.ceph.CephFileSystem</value>
  </property>
  <property>
    <name>fs.AbstractFileSystem.ceph.impl</name>
    <value>org.apache.hadoop.fs.ceph.CephHadoop2FileSystem</value>
  </property>
  <property>
    <name>ceph.conf.file</name>
    <value>/etc/ceph/ceph.conf</value>
  </property>
  <property>
    <name>ceph.auth.id</name>
    <value>admin</value>
  </property>
  <property>
    <name>ceph.auth.keyring</name>
    <value>/etc/ceph/ceph.client.admin.keyring</value>
  </property>
  <property>
    <name>ceph.data.pools</name>
    <value>hadoop</value>
  </property>


Thanks in advance for any pointers.


Gurmeet

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to