write down,forget

Cassandra 0.7 及Lucandra 0.7 升级过程记录

<Category: cassandra, nosql> 查看评论

及Lucandra 升级过程记录
Cassandra 0.7 中,所有的Schema信息都是liveupdate,所以不需要从配置文件加载,但是之前的那么多配置,如果可以直接加载进来就好了,cassandra提供了schematool就是解决这个问题的。

[这里我是直接拷贝的Lucandra0.7里的cassandra.yaml到cassandra的配置目录,如果要导入的是你之前的配置,你还需要使用执行config-converter来转换你之前的配置,会自动生成相应的yaml文件
具体过程:

显示如下:

ok,下面开始执行schemaconvert

继续执行schema导入

可以查看导入结果了,瞧瞧对不对吧

或者通过执行如下命令,更快更方便,信息也更全

很明显,这个结果不是我预期的,只导入了一个Keyspace1,原来我们转换完了之后的配置文件为storage.yaml,schematool不会自动发现,处理办法,合并文件内容到cassandra.yaml中,然后执行导入即可,注意yaml不能使用tab,只能是空格,导入操作只可执行一次。
]

然后你再使用cassandra-cli,通过show keyspaces就可以看到导入的schema配置了

结果:

同样的,导出也是相当方便:

发现一个bug,我的本地虚拟机没有启用网络前开启了cassandra,这时候nodetool ring 是可以看到节点信息的,但是在运行dhcpclient获取网络地址之后,ring里面没有节点信息了,解决办法只有重启cassandra服务,囧一下。
注:
nodetool工具:
Available commands: ring, info, version, cleanup, compact, cfstats,
snapshot [snapshotname], clearsnapshot, tpstats, flush, drain, repair,
decommission, move, loadbalance, removetoken, setcachecapacity
, getcompactionthreshold,
setcompactionthreshold [minthreshold] ([maxthreshold]), streams [host]

example:

result:

Lucandra升级,0.7的分支,作者说基本上可以用了,下面说下升级步骤。
Lucandra默认采用的不是framed模式,所以需要做相应的更改,ant build配置文件:build.xml

改完之后,用ant rebuild一下jar

其他ip之类的酌情处理,这里都不考虑了,只做本机测试。
run_demo.sh:
修改:CASSANDRA_FRAMED=true 即可
开始测试一下:

查询结果:

solr中相关配置,同样需要配置framed为true,位置:/-example//solrconfig.xml,有两处位置

Lucandra最好修改下源代码:src/lucandra/CassandraProxyClient.java,socket默认都使用framed吧。

solr貌似可以用了
solr
solr2

windows下升级另一招,配置好cassandra.yaml里面的Keyspaces之后,运行jconsole,执行loadschemafromyaml即可,如图。
jmx

本文来自: Cassandra 0.7 及Lucandra 0.7 升级过程记录