2017-06-07 20 views
8

Tôi đã thử cả hai với pycassa, cassandra.clusterdse.cluster mà không cần thực hiện kết nối.Kết nối python với cassandra một cụm từ cửa sổ với DseAuthenticator và DseAuthorizer

Tôi cảm thấy mình đang kết nối với máy chủ không đúng, vì tôi đang viết tên máy chủ của máy chủ Linux và không chỉ định bất kỳ điều gì liên quan đến cassandra.

Collegues đã nói với tôi rằng họ chỉ biết kết nối với máy chủ thông qua cqlsh nội tuyến trên máy linux. Điều đó nghe có vẻ không tiện lợi.

cấu hình cụ thể trong cassandra.yaml

authenticator: com.datastax.bdp.cassandra.auth.DseAuthenticator 
authorizer: com.datastax.bdp.cassandra.auth.DseAuthorizer 

Những gì tôi đang làm trong pycassa: Thông điệp

import pycassa 
URIPORTLIST = ['12345.mycompany.net:9420'] 
pool = pycassa.ConnectionPool('my_keyspace', server_list=URIPORTLIST,credentials={'USERNAME':'fancycar','PASSWORD':'becauseimbatman'}, prefill=False) 
cf = pycassa.ColumnFamily(pool, 'my_table') 

Lỗi:

AllServersUnavailable: An attempt was made to connect to each of the servers twice, but none of the attempts succeeded. The last failure was TTransportException: Could not connect to 12345.mycompany.net:9420 

Với dse.cluster

from dse.cluster import Cluster 
auth_provider = PlainTextAuthProvider(
     username='fancycar', password='becauseimbatman') 
cluster = Cluster(
    ['12345.mycompany.net'], 
    port=9042,auth_provider=auth_provider) 
session = cluster.connect('my_keyspace') 
nhắn

Lỗi:

NoHostAvailable: ('Unable to connect to any servers', {'11.111.11.1': AuthenticationFailed('Failed to authenticate to 11.111.11.2: Error from server: code=0100 [Bad credentials] message="Failed to login. Please re-try."',)}) 
+1

thử kết nối với cassandra sử dụng cùng một máy chủ và các thông tin từ cqlsh để xem nếu nó hoạt động ... 'cqlsh 12345.mycompany.net -u fancycar -p becauseimbatman' –

+0

@undefined_variable Cảm ơn gợi ý. Điều đó cho tôi một lỗi: '[[email protected] SYST: ~] # cqlsh 12345.mycompany.net -u fancycar -p becauseimbatman ' ' Lỗi kết nối: (' Không thể kết nối với bất kỳ máy chủ nào ' , {'11 .111.11.11 ': lỗi (Không, "Đã thử kết nối với [('11 .111.11.11', 9042)]. Lỗi cuối cùng: hết giờ")}) ' Trong khi đăng nhập" như thường lệ "hoạt động: '[[email protected] SYST: ~] # cqlsh -u fancycar -p becauseimbatman' ' Đã kết nối với 12345_cluster tại 12345.mycompany.net:9042. [cqlsh 5.0.1 | Cassandra 3.0.11.1485 | DSE 5.0.5 | CQL spec 3.4.0 | Giao thức gốc v4] ' – MadsVJ

+1

lệnh thứ hai của bạn kết nối với máy chủ cục bộ trong khi kết nối đầu tiên với máy chủ từ xa .. 12345.mycompany.net có giải quyết cùng một máy chủ lưu trữ cục bộ không? –

Trả lời

2

Cố định bằng công PlainTextAuthProvider dse.auth thay cho Cassandra một ..

from dse.cluster import Cluster 
# pip install dse-driver 
from dse.auth import PlainTextAuthProvider 
auth_provider = PlainTextAuthProvider(
     username='fancycar', password='becauseimbatman ') 
cluster = Cluster(contact_points=['12345.mycompany.net'], 
port=9042, auth_provider=auth_provider) 
session = cluster.connect('batcave') 
print "connected" 
print session.execute("SELECT * FROM robinstears")[0] 
Các vấn đề liên quan