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


2016年2月5日 星期五

Install cassandra on ubuntu 14.04

1. 先安裝 Java JDK
目前的是 Java 8, Java 9 官方還不建議使用

$sudo add-apt-repository -y ppa:webupd8team/java
$sudo apt-get update
$sudo apt-get install oracle-java8-installer


2. 安裝 Cassandra
目前從官網看到的最新版是 3.2.1

下載
$ wget http://apache.stu.edu.tw/cassandra/3.2.1/apache-cassandra-3.2.1-bin.tar.gz
$ tar -xvzf apache-cassandra-1.2.4-bin.tar.gz
$ mv apache-cassandra-1.2.4 ~/cassandra

安裝&設定
$sudo mkdir /var/lib/cassandra
$sudo mkdir /var/log/cassandra
$sudo chown -R $USER:$GROUP /var/lib/cassandra
$sudo chown -R $USER:$GROUP /var/log/cassandra
$export CASSANDRA_HOME=~/cassandra
$export PATH=$PATH:$CASSANDRA_HOME/bin

啟動 cassandra
$  ./cassandra/bin/cassandra
原本是用 sudo 去執行, console 上會顯示訊息建議不要用 root 權限啟動 cassandra, 所以就拿掉囉

執行 cql
$ ./cassandra/bin/cqlsh 

顯示:
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.2.1 | CQL spec 3.4.0 | Native protocol v4]
Use HELP for help.
cqlsh> 

簡單的指令操作可參考官網 GettingStarted


參考資料
http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/#
http://idroot.net/tutorials/how-to-install-apache-cassandra-on-ubuntu-14-04/
http://wiki.apache.org/cassandra/GettingStarted