Cài đặt và cấu hình Cassandra trên Centos.

Cài đặt và cấu hình Cassandra trên Centos.

Bài viết này sẽ hướng dẫn các bạn cài đặt và cấu hình Cassandra trên môi trường Centos OS.

Để chạy được Cassandra các bạn phải cài đặt Java.

Cài đặt Oracle Java VM

Tải  Java jdk1.8.0_141:

# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

Giải nén file vừa tải về:

# tar xzf jdk-8u141-linux-x64.tar.gz

Tạo thư mục chứa Java:

# sudo mkdir /usr/local/java

Di chuyển thư mục vừa giải nén vào thư mục vừa tạo:

# sudo mv jdk1.8.0_141/ /usr/local/java

Sau đó các bạn mở file /etc/profile và copy toàn bộ nội bên dưới vào cuối file.

#vi /etc/profile

JAVA_HOME=/usr/local/java/jdk1.8.0_141
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
JRE_HOME=/usr/local/java/jdk1.8.0_141
PATH=$PATH:$HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

Thực thi những lệnh dưới đây để khi dùng lệnh java thì sẽ được thực hiện bởi Java VM

# update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_141/bin/java" 1
# update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_141/bin/javac" 1
# update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_141/bin/javaws" 1
# update-alternatives --set java /usr/local/java/jdk1.8.0_141/bin/java
# update-alternatives --set javac /usr/local/java/jdk1.8.0_141/bin/javac
# update-alternatives --set javaws /usr/local/java/jdk1.8.0_141/bin/javaws

Khởi động lại VPS

# reboot

Nếu đã từng cài Java trước đó bạn thực hiện lệnh sau để chọn phiên bản Java mới nhất:

# alternatives --config java

Ví dụ bên dưới có 4 phiên bản Java thì chọn số 4 để sử dụng phiên bản mới nhất.

There are 3 programs which provide 'java'.
Selection    Command
*  1           /opt/jdk1.7.0_71/bin/java
+ 2           /opt/jdk1.8.0_45/bin/java
3           /opt/jdk1.8.0_91/bin/java
4           /opt/jdk1.8.0_141/bin/java
Enter to keep the current selection[+], or type selection number: 4

Cài đặt Cassandra

Tải Cassandra 2.2.10

# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/cassandra/2.2.10/apache-cassandra-2.2.10-bin.tar.gz

Giải nén tập tin vừa tải về:

# tar -zxf apache-cassandra-2.2.10-bin.tar.gz

Di chuyển và đổi tên thư mục vừa giải nén vào thư mục /opt

# mv apache-cassandra-2.2.10 opt/cassandra

Tạo các thư mục cần thiết:

Thư mục chứa thư viện:

# mkdir /var/lib/cassandra

Thư mục chưa log file:

# mkdir /var/log/cassandra

Tạo thư mục chứa dữ liệu:

# mkdir /home/cassandra/data

Cấp quyền cho các thư mục vừa tạo:

# chown -R $USER:$GROUP /var/lib/cassandra
# chown -R $USER:$GROUP /var/log/cassandra

Thiết lập biến môi trường cho Cassandra:

# export CASSANDRA_HOME=opt/cassandra
# export PATH=$PATH:$CASSANDRA_HOME/bin

Cấu hình Cassandra

Cấu hình cho cassandra nằm ở file cassandra.yaml. 

# nano  /opt/cassandra/conf/cassandra.yaml

Cấu hình thư mục chứa dữ liệu:

Các bạn tìm đến dòng như dưới đây:

# If not set, the default directory is $CASSANDRA_HOME/data/data.
# data_file_directories:
#     - /var/lib/cassandra/data

Sau đó đổi thành thư mục /home/cassandra/data như đã tạo ở trên:

# If not set, the default directory is $CASSANDRA_HOME/data/data.
data_file_directories:
- /home/cassandra/data

Cấu hình thư mục chưa file LOG:

Các bạn tìm đến dòng như dưới đây:

# If not set, the default directory is $CASSANDRA_HOME/data/commitlog.

# commitlog_directory: /var/lib/cassandra/commitlog

Sau đó bỏ dấu # ở dòng  commitlog_directory: /var/lib/cassandra/commitlog

Cấu hình các node có thể kết nối với nhau:

Mỗi node phải được cấu hình một cách chuẩn xác trước khi khởi động cluster.

Bạn phải cấu hình những thông số sau trong cassandra.yaml

  • cluster_name:
  • num_token: <giá trị nên sử dụng: 256>
  • -seeds: <địa chỉ IP internal của mỗi seed node>
  • listen_address: <địa chỉ IP localhost>
  • endpoint_snitch: <tên của snitch>
  • auto_bootstrap: false (sử dụng true chỉ khi khởi tạo một cluster mới không có chút dữ liệu nào)

Ví dụ cấu hình cho 2 node có IP lần lượt là 10.128.0.1 và 10.128.0.2 trong đó seed node là 10.128.0.1

Ở node 10.128.0.1

  • cluster_name: ‘TEST’
  • num_tokens: 256
  •  -seeds: 10.128.0.1
  • listen_address: 10.128.0.1
  • endpoint_snitch: GossipingPropertyFileSnitch
  • auto_bootstrap: false

Ở node 10.128.0.2

  • cluster_name: ‘TEST’
  • num_tokens: 256
  •  -seeds: 10.128.0.1
  • listen_address: 10.128.0.2
  • endpoint_snitch: GossipingPropertyFileSnitch
  • auto_bootstrap: false

Sau khi cấu hình xong ta khởi động Cassandra lần lượt từ seed node

# /opt/cassandra/bin/cassandra

Kiểm tra trạng thái:

# /opt/cassandra/bin/nodetool status

Nếu màn hình hiển thị như bên dưới là bạn đã cấu hình thành công 2 node kết nối được với nhau.

Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  10.128.0.2  101.93 KB  256          100.0%            edc8bf06-131a-4216-a73c-8894e8117587  rack1
UN  10.128.0.3  103.39 KB  256          100.0%            120dc684-aaca-4e50-8938-5a403bc3ed36  rack1

Như vậy mình đã hướng dẫn các bạn cài đặt và cấu hình Cassandra multi – node. Cảm ơn các bạn đã theo dõi.
[quangcao]