I am using DSE 2.1 and i wrote a java program to connect to cassandra file system. My code looks like this:
package com.informatica.casandra;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;//
import org.apache.hadoop.security.UserGroupInformation;
import com.datastax.bdp.hadoop.cfs.CassandraFileSystem;
public class casandra {
public static void main(String[] args)
{
try {
CassandraFileSystem fs = new CassandraFileSystem();
Configuration conf = new Configuration();
//UserGroupInformation.createUserForTesting("root", new String[]{"supergroup"});
//UserGroupInformation.setConfiguration(conf);
fs.initialize(URI.create("cfs://10.1.43.77:9160"), conf);
// Prepare some data to write into the file:
String s = "this is a sample";
byte[] data = s.getBytes();
// Create a new file:
Path path = new Path("/testfile");
System.out.println(data);
FSDataOutputStream os1 = fs.create(path);
os1.write(data);
os1.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
However running this gives an error:
12/07/03 11:48:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12/07/03 11:48:47 WARN security.UserGroupInformation: No groups available for user sagrawal
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at com.datastax.bdp.hadoop.cfs.CassandraFileSystemThriftStore.checkPermissions(CassandraFileSystemThriftStore.java:1260)
at com.datastax.bdp.hadoop.cfs.CassandraFileSystemThriftStore.checkPermissions(CassandraFileSystemThriftStore.java:1300)
at com.datastax.bdp.hadoop.cfs.CassandraFileSystemThriftStore.checkParentPermissions(CassandraFileSystemThriftStore.java:1318)
at com.datastax.bdp.hadoop.cfs.CassandraFileSystem.create(CassandraFileSystem.java:263)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:555)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:536)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:443)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:435)
at com.informatica.casandra.casandra.main(casandra.java:39)
Any idea how can I test this ? I want to disable the file system security from cassandra.
