Cách cài đặt cơ sở dữ liệu Apache Cassandra NoSQL trên cụm Ubuntu 22.04 một nút

theanh

Administrator
Nhân viên
Apache Cassandra là một hệ thống quản lý cơ sở dữ liệu phân tán NoSQL nguồn mở. Cassandra có thể được mở rộng theo chiều ngang bằng cách thêm nhiều nút hơn mà dữ liệu được sao chép tự động. Các nút có thể được thêm hoặc xóa mà không có thời gian chết. Các nút có thể được tổ chức hợp lý như một cụm hoặc một vòng và được thiết lập trên nhiều trung tâm dữ liệu để cải thiện tốc độ và độ tin cậy cho các ứng dụng hiệu suất cao.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Apache Cassandra trên một cụm Ubuntu 22.04 một nút.

Điều kiện tiên quyết​


  • Một máy chủ chạy Ubuntu 22.04 với tối thiểu 2GB RAM.

  • Một người dùng không phải sudo có quyền root.

  • Mọi thứ đều được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade

Bước 1 - Cài đặt Java​

Apache Cassandra yêu cầu Java 8 hoặc Java 11 để hoạt động. Phiên bản mới nhất của Cassandra bao gồm hỗ trợ đầy đủ cho Java 11, đây là phiên bản chúng ta sẽ sử dụng.
Mã:
$ sudo apt install openjdk-11-jdk
Xác nhận cài đặt Java.
Mã:
$ java -versionopenjdk 11.0.15 2022-04-19Môi trường chạy thời gian thực OpenJDK (bản dựng 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)Máy ảo máy chủ OpenJDK 64-Bit (bản dựng 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, chế độ hỗn hợp, chia sẻ)

Bước 2 - Cài đặt Apache Cassandra​

Bước đầu tiên là thêm kho lưu trữ chính thức của Cassandra.

Chạy lệnh sau để thêm kho lưu trữ vào danh sách kho lưu trữ của hệ thống.
Mã:
$ echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Tại thời điểm viết hướng dẫn này, phiên bản mới nhất có sẵn của Cassandra là 4.0.5. Lệnh trên sử dụng 40x để biểu diễn phiên bản 4.0 của Cassandra.

Thêm khóa kho lưu trữ vào danh sách kho lưu trữ đáng tin cậy của hệ thống.
Mã:
$ wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo tee /etc/apt/trusted.gpg.d/cassandra.asc
Cập nhật danh sách kho lưu trữ hệ thống.
Mã:
$ sudo apt update
Cài đặt Cassandra.
Mã:
$ sudo apt install cassandra

Bước 3 - Kiểm tra Dịch vụ Cassandra​

Cassandra tự động tạo và khởi động dịch vụ daemon. Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status cassandra
Bạn sẽ nhận được kết quả sau.
Mã:
? cassandra.service - LSB: hệ thống lưu trữ phân tán cho dữ liệu có cấu trúc Đã tải: đã tải (/etc/init.d/cassandra; đã tạo) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2022-07-25 11:40:42 UTC; 12 phút trước Tài liệu: man:systemd-sysv-generator(8) Nhiệm vụ: 48 (giới hạn: 2241) Bộ nhớ: 1,3G CPU: 38,219 giây CGroup: /system.slice/cassandra.service ??4602 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+UseNUMA ->25 tháng 7 11:40:42 cassandra systemd[1]: Đang khởi động LSB: hệ thống lưu trữ phân tán cho dữ liệu có cấu trúc...25 tháng 7 11:40:42 cassandra systemd[1]: Đang khởi động LSB: hệ thống lưu trữ phân tán cho dữ liệu có cấu trúc.
Bạn cũng có thể xác minh trạng thái bằng lệnh nodetool.
Mã:
$ nodetool statusDatacenter: datacenter1=====================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns (effective) Host ID RackUN 127.0.0.1 69.08 KiB 16 100.0% 6690243a-950d-4d64-9463-aa722f8064d4 rack1

Bước 4 - Cấu hình Cassandra​

Vị trí mặc định của các tệp cấu hình cho Cassandra là tại /etc/cassandra. Vị trí mặc định cho các thư mục nhật ký và dữ liệu là /var/log/cassandra và /var/lib/cassandra.

Các thiết lập cấp độ JVM như kích thước heap có thể được thiết lập thông qua tệp /etc/cassandra/cassandra-env.sh. Bạn có thể truyền thêm các đối số dòng lệnh JVM cho biến JVM_OPTS. Các đối số được truyền tới Cassandra khi nó khởi động.

4.1 Bật xác thực người dùng​

Để bật xác thực người dùng, bước đầu tiên là sao lưu tệp /etc/cassandra/cassandra.yaml.
Mã:
$ sudo cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup
Mở tệp cassandra.yaml để chỉnh sửa.
Mã:
$ sudo nano /etc/cassandra/cassandra.yaml
Xác định vị trí các tham số sau trong tệp này.
Mã:
...authenticator: AllowAllAuthenticator...authorizer: AllowAllAuthorizer...roles_validity_in_ms: 2000...permissions_validity_in_ms: 2000...
Thay đổi các giá trị của các tham số như được đưa ra bên dưới.
Mã:
...authenticator: org.apache.cassandra.auth.PasswordAuthenticator...authorizer: org.apache.cassandra.auth.CassandraAuthorizer...roles_validity_in_ms: 0...permissions_validity_in_ms: 0. . .
Bạn có thể định cấu hình các cài đặt khác dựa trên yêu cầu của mình. Nếu chúng được chú thích, hãy bỏ chú thích.

Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại Cassandra để bật các thiết lập đã thay đổi.
Mã:
$ sudo systemctl restart cassandra

4.1.1 - Thêm Siêu người dùng Quản trị viên​

Bây giờ chúng ta đã bật xác thực, chúng ta cần tạo một người dùng. Để thực hiện việc đó, chúng ta sẽ sử dụng tiện ích shell Cassandra Command. Đăng nhập bằng thông tin đăng nhập của người dùng mặc định cassandra.
Mã:
$ cqlsh -u cassandra -p cassandra
Bạn sẽ nhận được shell sau.
Mã:
Đã kết nối với Test Cluster tại 127.0.0.1:9042[cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5]Sử dụng HELP để được trợ giúp.cassandra@cqlsh>
Tạo siêu người dùng mới. Thay thế [username] và [yourpassword] bằng thông tin đăng nhập của bạn.
Mã:
cassandra@cqlsh> TẠO VAI TRÒ [tên người dùng] VỚI MẬT KHẨU = '[mật khẩu của bạn]' VÀ SIÊU NGƯỜI DÙNG = đúng VÀ ĐĂNG NHẬP = đúng;
Đăng xuất khỏi shell.
Mã:
cassandra@cqlsh> thoát
Đăng nhập lại bằng tài khoản siêu người dùng mới.
Mã:
$ cqlsh -u username -p yourpassword
Xóa các quyền nâng cao khỏi tài khoản cassandra mặc định.
Mã:
username@cqlsh> THAY ĐỔI VAI TRÒ cassandra VỚI MẬT KHẨU = 'cassandra' VÀ SIÊU NGƯỜI DÙNG = sai VÀ ĐĂNG NHẬP = sai;username@cqlsh> HỦY BỎ TẤT CẢ CÁC QUYỀN TRÊN TẤT CẢ CÁC KHÓA KHÔNG GIAN TỪ cassandra;
Cấp tất cả các quyền cho tài khoản siêu người dùng.
Mã:
username@cqlsh> CẤP TẤT CẢ CÁC QUYỀN TRÊN TẤT CẢ CÁC KHÓA KHÔNG GIAN CHO '[username]';
Đăng xuất khỏi shell.
Mã:
username@cqlsh> thoát

4.2 - Chỉnh sửa Tệp Cấu hình Bảng điều khiển​

Nếu bạn muốn tùy chỉnh Cassandra Shell, bạn có thể thực hiện bằng cách chỉnh sửa tệp cqlshrc. Vị trí mặc định của tệp nằm trong thư mục ~/.cassandra. Nếu bạn muốn tải nó từ một thư mục khác, bạn có thể truyền tham số --cqlshrc /customdirectory cho công cụ cqlsh trong khi chạy. Cài đặt mặc định của Cassandra không bao gồm tệp này. Do đó, chúng ta sẽ cần tạo tệp này.

Tạo tệp cqlshrc trong thư mục ~/.cassandra. Chúng ta không cần sử dụng sudo để thực hiện bất kỳ chức năng nào trong thư mục ~/.cassandra. Cassandra yêu cầu các tệp trong thư mục này phải thuộc sở hữu của tài khoản cục bộ và không thể truy cập được từ các tài khoản hoặc nhóm khác.
Mã:
$ touch ~/.cassandra/cqlshrc
Nếu thư mục ~/.cassandra không có, hãy tạo thư mục đó bằng lệnh sau.
Mã:
$ mkdir ~/.cassandra
Mở tệp để chỉnh sửa.
Mã:
$ nano ~/.cassandra/cqlshrc
Kho lưu trữ Github của Cassandra cung cấp tệp mẫu cqlshrc. Bạn có thể sao chép bất kỳ phần nào hoặc tất cả các phần từ đó tùy theo nhu cầu của mình. Tất cả các cài đặt đều được chú thích bằng ;;. Bỏ chú thích bằng cách xóa dấu chấm phẩy kép rồi thực hiện thay đổi tùy theo nhu cầu của bạn.

Chúng tôi sẽ cấu hình shell để tự động đăng nhập bằng thông tin xác thực của siêu người dùng. Thay thế [username] và [password] bằng thông tin xác thực được tạo ở bước trước.
Mã:
....[authentication];; Nếu Cassandra đã bật xác thực, hãy điền vào các tùy chọn sauusername = [username]password = [password]....
Chỉnh sửa bất kỳ cài đặt nào khác mà bạn muốn thay đổi. Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cập nhật quyền cho tệp cqlshrc. Điều này ngăn chặn bất kỳ nhóm người dùng nào khác truy cập vào tệp.
Mã:
$ chmod 600 ~/.cassandra/cqlshrc
Đăng nhập vào shell Cassandra với những thay đổi mới của bạn.
Mã:
$ cqlshĐã kết nối với Test Cluster tại 127.0.0.1:9042[cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5]Sử dụng HELP để được trợ giúp.navjot@cqlsh>
Lưu ý: Phương pháp lưu trữ tên người dùng và mật khẩu trong tệp cqlshrc sẽ không còn được sử dụng nữa kể từ phiên bản 4.1 của Cassandra. Để tìm hiểu thêm về nó, bạn có thể đọc mục trên trang web của Cassandra.

4.3 - Đổi tên cụm​

Cuối cùng, chúng ta sẽ đổi tên cụm từ Cụm thử nghiệm thành tên bạn chọn.

Đăng nhập vào thiết bị đầu cuối cqlsh.
Mã:
$ cqlsh
Thay thế [clustername] bằng tên cụm mới của bạn trong lệnh bên dưới.
Mã:
username@cqlsh> CẬP NHẬT system.local ĐẶT cluster_name = '[new_name]' WHERE KEY = 'local';
Thoát khỏi shell.
Mã:
username@cqlsh> thoát
Mở tệp /etc/cassandra/cassandra.yaml để chỉnh sửa.
Mã:
$ sudo nano /etc/cassandra/cassandra.yaml
Thay thế giá trị của biến cluster_name bằng tên bạn chọn.
Mã:
...# Tên của cụm. Tên này chủ yếu được sử dụng để ngăn các máy trong# một cụm logic tham gia cụm khác.cluster_name: '[new_name]'...
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xóa bộ đệm hệ thống Cassandra.
Mã:
$ nodetool flush system
Khởi động lại Cassandra.
Mã:
$ sudo systemctl restart cassandra
Đăng nhập vào shell để xem tên mới.
Mã:
$ cqlshĐã kết nối với howtoforge tại 127.0.0.1:9042[cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5]Sử dụng HELP để được trợ giúp.navjot@cqlsh>

Kết luận​

Trong hướng dẫn này, bạn đã học cách cài đặt Apache Cassandra trên máy chủ AlmaLinux hoặc Rocky Linux. Bạn cũng đã học cách thêm xác thực người dùng và thực hiện một số cấu hình cơ bản. Để tìm hiểu thêm, hãy truy cập tài liệu chính thức của Cassandra. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên