2012-07-25 36 views
9

Tôi có máy chủ cassandra đang chạy trên máy chủ (serv1). cassandra-cli có thể kết nối với nó khi chạy trên serv1. Tuy nhiên, khi tôi cố gắng để kết nối đến nó thông qua một số máy chủ khác (serv2), tôi nhận được những ngoại lệ sau đây:Cassandra-cli không thể kết nối với máy chủ cassandra từ xa

org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused 
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183) 
    at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81) 
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:80) 
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:256) 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
    at java.net.Socket.connect(Socket.java:529) 
    at org.apache.thrift.transport.TSocket.open(TSocket.java:178) 
    ... 3 more 
Exception connecting to jckstore/9160. Reason: Connection refused. 

tôi nhìn vào cassandra.yaml và thấy rằng tài sản "listen_address" được cấu hình để "localhost" và sử dụng 0.0.0.0 không được khuyến khích. Tôi đã cố gắng để thay đổi localhost để serv2, địa chỉ ip của serv1 nhưng không có gì làm việc. Ngay cả bình luận ra không giúp đỡ.

Có cách nào tôi có thể làm cho máy chủ cassandra tôi nghe trên tất cả các của ip mà không sử dụng 0.0.0.0

Trả lời

12

tôi đã có thể giải quyết vấn đề như sau:

  1. thay đổi thuộc tính rpc_address trong cassandra .yaml đến 0.0.0.0 thay vì localhost.
  2. thiết lập thuộc tính broadcast_rpc_address trong cassandra.yaml đến một giá trị khác hơn là 0.0.0.0

Sau đó, tôi có thể truy cập.

+1

Ý của bạn là gì ngoài 0.0.0.0 .. bạn đã đặt nó thành gì? – KingOfHypocrites

+0

Trong tệp yaml, địa chỉ là 1.2.3.4 trong nhận xét. Tôi đặt nó là 255.255.255.255, và nó hoạt động, tốt ... ít nhất là vào lúc này – Lewen

4

Cassandra cli sử dụng tiết kiệm để kết nối với Cassandra. Rpc_address quyết định cách khách hàng tiết kiệm có thể kết nối với Cassandra như thế nào. Đặt nó thành 0.0.0.0 sẽ hoạt động, nhưng đặt nó thành tên máy chủ của máy chủ và sau đó sử dụng cùng tên máy chủ để kết nối cũng sẽ hoạt động.

0

Tôi cũng gặp vấn đề tương tự và tôi đã liên tục ngạc nhiên vì nó đã được định cấu hình chính xác. Cuối cùng, tôi phát hiện ra đó là vấn đề cho phép:

chown -R cassandra: /var/lib/cassandra 
chown -R cassandra: /var/log/cassandra 

Hy vọng nó giúp :-)

0

tôi đã cùng một vấn đề. Tôi đã sửa lỗi này bằng cách cập nhật tùy chọn máy ảo thư mục tạm thời để trỏ đến thư mục bên phải.

VM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/home/users/local/user/cassandra_home/snap 

Hy vọng điều này sẽ hữu ích!

0

Tôi cũng có cùng một sự cố "Kết nối bị từ chối". Thay đổi rpc_address từ "localhost" thành cùng tên máy chủ như listen_address làm việc cho tôi.

0

Tôi cũng có cùng một sự cố "Kết nối bị từ chối". Thay đổi start_rpc: thành true đã sửa nó cho tôi.

Các vấn đề liên quan