为了能够提供Cassandra特有的文件系统实现,Brisk将hadoop默认的hdfs文件类型修改为了cfs文件类型,其在core-site.xml文件中的配置重置了默认配置:
<property> <name>fs.cfs.impl</name> <value>org.apache.cassandra.hadoop.fs.CassandraFileSystem</value> </property> <property> <name>fs.cfs-archive.impl</name> <value>org.apache.cassandra.hadoop.fs.CassandraFileSystem</value> </property>
其中org.apache.cassandra.hadoop.fs.CassandraFileSystem与HDFS中默认的实现org.apache.hadoop.hdfs.DistributedFileSystem一样,都继承于Hadoop通用的文件接口基类org.apache.hadoop.fs.FileSystem,所有能够保证接口的兼容性。
此外,Brisk还修改了HDFS中默认使用的文件类型:
<property> <name>fs.default.name</name> <value>cfs:///</value> </property>
所以在当我们在Brisk环境中调用HDFS的操作时,都将定向到cfs的实现,如:
briskhadoopfs -ls /test
将相应地转化为:
briskhadoopfs -ls cfs:///test
org.apache.cassandra.hadoop.fs.CassandraFileSystem中所有文件的操作都是通过调用Brisk中提供的get_cfs_sblock接口服务来实现读写操作的,通过整合这些模块,从而完成了利用Cassandra替换HDFS的需求。
不过目前CassandraFS实现和HDFS的实现还是有一些区别的,比如不支持权限,不支持追加写入等等。
感谢张凯峰对本文的审校。
时间:2011-11-14 15:12
来源:infoq
作者:infoq
原文链接