Cassandra1.2.5源码环境搭建

来源:互联网 发布:李小璐淘宝店名 编辑:程序博客网 时间:2024/05/18 00:30

目的:为了研究Cassandra源码,必须把Cassandra源码环境搭建好,但发现下载完Cassandra的source包后需要引用很多类都没有,有点坑,下面就我搭建的Cassandra-1.2.5源码环境做详细说明。


1、下载Cassandra-1.2.5源码包,解压。

2、首先创建一个Java Project,如工程名Cassandra-1.2.5,这个比较简单。

3、将Cassandra-1.2.5源码包下的lib目录拷贝到新建的工程下,目录结构为Cassandra-1.2.5\lib,把lib目录下的jar包导入到工程。

4、将Cassandra-1.2.5源码包下的src目录拷贝到新建的工程下,目录结构为Cassandra-1.2.5\src,把avro,java,resource添加进source包,如下图。


5、将Cassandra-1.2.5源码包interface目录下的thrift目录拷贝新建的工程下,目录结构为Cassandra-1.2.5\thrift,再将此文件下的gen-java添加进source包。这部分代码很重要,cassandra与外部通讯都指望它。

查看一下现在的工程,还有哪些报错呢。都是src/java下的类报错。

首先我们回到解压的Cassandra-1.2.5源码包下,因为只有一个build.xml文件,没有其他跟编译打包的相关文件,那Cassandra是用ant来构建的。

6、好了,将build.properties.default和build.xml两个文件拷贝到新建的工程下,打开ant视图(如果没有,装个ant eclipse插件吧),把build.xml文件拖到视图里。

再回到src/java下报错的包,第1个cli还有第4,5个报错的包cql,cql3。这3个包是cassandra-cli脚本、cql2和cql3使用的java代码,使用了antlr,将字符串转化为相关语义的cassandra对象,例如将"select * from table"字符串转化为SelectStatement对象。那就是说antlr需要将这3个包定义的语义内容转化成java类,这3个antlr语义文件分别为cli\Cli.g、cql\Cql.g和cql3\Cql3.g。这个转化的过程可以通过ant来做。

7、再回到刚才打开的ant视图,看到了下面的这样的几行吧,分别双击就会把代码生成了。它生成的java类在Cassandra-1.2.5\src\gen-java下,将这个文件弄成source包吧。现在报错是不是少很多了。


8、再看报错的RingCache类,是因为没有引入hadoop的包,hadoop包的版本可以在build.xml文件下找到,还有个pig的包也一样。

9、接下来是缺少avro包下的文件,同样需要ant生成java代码,在ant视图中找avro-generate,双击后就把代码生成在src\gen-java下。这个需要下载一些jar包,时间长一点。完成后刷新一下工程。

10、最后1个是CLibrary类报错,需要jna-3.2.7.jar,这个jar包可以在工程下build\lib\jars下找到,导入。

11、将Cassandra-1.2.5源码包conf\cassandra.yaml文件拷贝到工程的src/java源码包下。修改下面3个参数对应的目录。

  • data_file_directories
  • commitlog_directory
  • saved_caches_directory

12、在工程下创建一个conf文件夹。将Cassandra-1.2.5源码包conf下文件cassandra-env.sh、cassandra-rackdc.properties、cassandra-topology.properties、commitlog_archiving.properties、log4j-server.properties和log4j-tools.properties拷贝至工程的conf文件夹,修改log4j-server.properties中日志文件的路径。

好了,大功告成了。

运行CassandraDaemon.java后cassandra就跑起来了。

Enjoy youself with Cassandra!

原创粉丝点击