Mad*_*sVJ 8 python linux cql cassandra cqlsh
我都试过用pycassa,cassandra.cluster并dse.cluster没有进行连接.
我觉得我正在连接到错误的主机,因为我正在编写linux服务器主机名而没有指定任何有关cassandra的内容.
Collegues告诉我他们只知道通过cqlshlinux机器内联连接到服务器.这听起来不方便.
具体配置 cassandra.yaml
authenticator: com.datastax.bdp.cassandra.auth.DseAuthenticator
authorizer: com.datastax.bdp.cassandra.auth.DseAuthorizer
Run Code Online (Sandbox Code Playgroud)
我在pycassa做的事情:
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')
Run Code Online (Sandbox Code Playgroud)
错误信息:
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
Run Code Online (Sandbox Code Playgroud)
同 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')
Run Code Online (Sandbox Code Playgroud)
错误信息:
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."',)})
Run Code Online (Sandbox Code Playgroud)
通过使用 dse.auth PlainTextAuthProvider 而不是 Cassandra 来修复。
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]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |