- 安装Python2.7 Cassandra 2.2.5 用到了python2.7 , 而CentOS 6.7自带的python是2.6, 所以要装python2.7, 但是又不能删除2.6版本,因为yum需要用到python2.6,参见CentOS install Python2.7
2.
安装datastax的cassandra2.2.5
http://docs.datastax.com/en/cassandra/2.2/cassandra/install/installRHEL.html
3. 安装后执行cqlsh发现有错,python报找不到module pylib , 按照以下来解决
我是通过yum安装的是datastax的社区版本,安装之前系统有python2.7,安装cassandra的时候我看到级联安装了python2.6。我发现在cqlsh的py文件安装到了python2.6,解决办法:下载apache-cassandra.2.2.zip包,里面有pylib目录,进入后执行python setup.py install,就可以在python2.7下使用cqlsh了。
4. 这个时候在本地可以执行cqlsh命令连接本机了,但是发现外边的机器和app连接时报NoHostAvailableException的异常。这是有两个改动需要进行。
- a. vi /etc/cassandra/conf/cassandra.yaml , 修改rpc_address和listen_address为本机器ip地址
- b. 需要为CentOS开以下的firewall端口
iptables -I INPUT -p tcp -m tcp --dport 9042 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 7000 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 7001 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 7199 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 9160 -j ACCEPT
$ /etc/init.d/iptables save
$ service iptables restart
7199 - JMX (was 8080 pre Cassandra 0.8.xx)
7000 - Internode communication (not used if TLS enabled)
7001 - TLS Internode communication (used if TLS enabled)
9160 - Thrift client API
9042 - CQL native transport port
至此外边的机器也可以连接了 cqlsh ip_address