Answers:
@Schildmeijer基本正确,但是在使用TLS加密节点间通信时仍使用端口7001
因此,我的完整列表是针对Cassandra的当前版本的:
对于Apache Cassandra 2.0,您需要考虑以下TCP端口:(请参阅EC2安全组配置和Apache Cassandra FAQ)
com.sun.management.jmxremote.rmi.port
属性指定特定端口。EC2上的Cassandra + OpsCenter可能的架构如下所示:
8080-JMX(远程)
8888-远程调试器(在0.6.0中已删除)
7000-由Cassandra内部使用
(7001-已过时,在0.6.0中删除。用于会员交流,又称八卦)
9160-Thrift客户端API
Cassandra常见问题解答Cassandra使用哪些端口?
端口57311和57312是用于RMI通信的随机分配的端口。每次启动Cassandra时,这些端口都会更改,但需要在防火墙中与8080/7199(取决于版本)一起打开,以允许远程JMX访问。似乎没有什么特别有据可查的东西,但过去使我震惊。
cassandra-env.sh
现在,默认值将com.sun.management.jmxremote.rmi.port
属性设置为与主JMX端口相同的值,以便不使用随机端口。
除了上述答案之外,作为配置防火墙的一部分,如果您使用的是SSH,则请使用端口22。
我使用以下步骤解决了问题:
停止卡桑达拉服务
sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse
进行备份并将端口从9042更改为9035
cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
Vi /opt/dse/resources/cassandra/conf/cassandra.yaml
native_transport_port: 9035
启动Cassandra服务
systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse
创建cqlshrc文件。
vi /root/.cassandra/cqlshrc
[connection]
hostname = 198.168.1.100
port = 9035
谢谢,Mahesh