2016年2月23日 星期二

Cassandra Config (3.3.0)

裝完 Cassandra 後試著做兩件事

1. 將 listen interface 由 localhost 改為其他 IP, 支援外部連線
2. 建帳號

兩者皆由修改  ~/cassandra/conf/cassandra.yaml 著手

1. Change IP
目前只是先試出來有兩個地方要改

#listen_address: localhost
listen_interface: [your interface] ex. eth1  

#rpc_address: localhost
rpc_address: [your ip] ex. 192.168.2.129

比較奇怪的是, 
看說明, 應該設 listen_address 就可以, 但直到改了 rpc_address 才真的 listen 在指定的 IP上
另外我目前 listen_address 要改用 listen_interface 才行. 否則執行 cassandra 會有error.
待有空再來研究

[另外試了 Cassandra 3.2.1  則是兩者都要設 ip address, 也是奇怪]

2. Create User

預設執行 cql 是不需要 username/password
但當要執行 create user 時, 會出現類似以下 error:

InvalidRequest: code=2200 [Invalid query] message="org.apache.cassandra.auth.CassandraRoleManager doesn't support PASSWORD"

同樣需要修改 config

#authenticator: AllowAllAuthenticator
authenticator: PasswordAuthenticator

#authorizer: AllowAllAuthorizer
authorizer: CassandraAuthorizer

這兩項改完可以預設帳號登入(cassandra/cassandra) 並 create user
ex.
~/cassandra/bin/cqlsh 192.168.2.129 -u cassandra -p cassandra
Connected to Test Cluster at 192.168.2.129:9042.
[cqlsh 5.0.1 | Cassandra 3.2.1 | CQL spec 3.4.0 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh> create user test with password 'test' ;

參考資料:
http://stackoverflow.com/questions/31820914/in-cassandra-2-2-unable-to-create-role-containing-password


沒有留言:

張貼留言