Cách cài đặt Apache Cassandra trên AlmaLinux / Rocky Linux 8

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 mã 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 vào 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à 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 AlmaLinux và Rocky Linux 8 OS. Các lệnh cho cả hai Hệ điều hành sẽ giống hệt nhau trừ khi được chỉ định khác.

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


  • Máy chủ chạy AlmaLinux hoặc Rocky Linux với tối thiểu 2GB RAM.

  • Người dùng không sử dụng sudo có quyền root.

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

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

Apache Cassandra yêu cầu Java 8 để hoạt động. Phiên bản mới nhất của Cassandra bao gồm hỗ trợ thử nghiệm cho Java 11, nhưng đối với hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng Java 8.
Mã:
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Xác nhận cài đặt Java.
Mã:
$ java -versionopenjdk version "1.8.0_312"Môi trường chạy thời gian thực OpenJDK (bản dựng 1.8.0_312-b07)Máy ảo máy chủ OpenJDK 64-Bit (bản dựng 25.312-b07, chế độ hỗn hợp)

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 để tạo tệp kho lưu trữ /etc/yum.repos.d/cassandra.repo và nhập thông tin chi tiết.
Mã:
$ sudo tee /etc/yum.repos.d/cassandra.repo  name=Apache Cassandra> baseurl=https://www.apache.org/dist/cassandra/redhat/40x/> gpgcheck=1> repo_gpgcheck=1> gpgkey=https://www.apache.org/dist/cassandra/KEYS> EOF
Bây giờ tệp repo đã được tạo, hãy cài đặt Cassandra.
Mã:
$ sudo dnf install cassandra -y

Bước 3 - Cài đặt Cqlsh​

Chúng ta sẽ sử dụng công cụ CQL Shell (cqlsh) để tương tác với Cassandra. Công cụ này tương thích với Python 2.7 hoặc Python 3.6+. Đối với hướng dẫn của chúng ta, chúng ta sẽ sử dụng Python 3.8. Cài đặt Python 3.8.
Mã:
$ sudo dnf install python38
Đặt Python 3.8 làm phiên bản Python mặc định.
Mã:
$ sudo update-alternatives --config pythonCó 3 chương trình cung cấp 'python'. Lệnh lựa chọn----------------------------------------------------------*+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8Enter để giữ lựa chọn hiện tại[+], hoặc nhập số lựa chọn: 3
Bạn sẽ được cung cấp nhiều tùy chọn. Chúng tôi sẽ chọn số 3 để đặt Python 3.8 làm phiên bản mặc định trong trường hợp của chúng tôi.

Xác nhận cài đặt Python.
Mã:
$ python --versionPython 3.8.8
Sau khi sử dụng tiện ích update-alternatives, bạn không cần sử dụng lệnh python3.

Cài đặt cqlsh bằng trình quản lý gói pip Python.
Mã:
$ pip3 install --user cqlsh
Xác nhận cài đặt cqlsh.
Mã:
$ cqlsh --versioncqlsh 6.0.0

Bước 4 - Tạo tệp Systemd Unit cho Cassandra​

Tạo và mở /etc/systemd/system/cassandra.service để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/cassandra.service
Dán mã sau vào đó.
Mã:
[Unit]Description=Apache CassandraAfter=network.target[Service]PIDFile=/var/run/cassandra/cassandra.pidUser=cassandraGroup=cassandraExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pidRestart=always[Install]WantedBy=multi-user.target
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tải lại daemon dịch vụ.
Mã:
$ sudo systemctl daemon-reload
Kích hoạt và khởi động dịch vụ Cassandra.
Mã:
$ sudo systemctl enable cassandra --now
Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status cassandra? cassandra.service - Apache Cassandra Đã tải: đã tải (/etc/systemd/system/cassandra.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thu 2021-12-30 11:07:43 UTC; 12 giây trước PID chính: 4679 (java) Nhiệm vụ: 48 (giới hạn: 23696) Bộ nhớ: 1,3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
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.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1

Bước 5 - 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/conf/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 cho Cassandra khi nó khởi động.

5.1 Bật Xác thực Người dùng​

Để bật xác thực người dùng, trước tiên, hãy sao lưu tệp /etc/cassandra/conf/cassandra.yaml.
Mã:
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Mở tệp cassandra.yaml để chỉnh sửa.
Mã:
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Xác định vị trí các tham số sau trong tệp này.
Mã:
authenticator: AllowAllAuthenticatorauthorizer: AllowAllAuthorizerroles_validity_in_ms: 2000permissions_validity_in_ms: 2000
Thay đổi giá trị của các tham số như được đưa ra bên dưới.
Mã:
. . .authenticator: org.apache.cassandra.auth.PasswordAuthenticatorauthorizer: org.apache.cassandra.auth.CassandraAuthorizerroles_validity_in_ms: 0permissions_validity_in_ms: 0. . .
Bạn có thể cấu hình các thiết lập 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

5.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 điều đó, 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
Tạo một siêu người dùng mới. Thay thế [tên người dùng] và [mật khẩu của bạn] bằng thông tin đăng nhập của bạn.
Mã:
cassandra@cqlsh> CREATE ROLE [tên người dùng] WITH PASSWORD = '[mật khẩu của bạn]' AND SUPERUSER = true AND LOGIN = true;
Đăng xuất.
Mã:
cassandra@cqlsh> exit
Đă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> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;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.
Mã:
username@cqlsh> thoát

5.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 đối số --cqlshrc /customdirectory cho công cụ cqlsh trong khi chạy.

Bạn có thể tìm thấy tệp mẫu tại /etc/cassandra/conf/cqlshrc.sample chứa tất cả các thiết lập bạn có thể cấu hình liên quan đến Cassandra Shell.

Sao chép và đổi tên tệp ví dụ thành thư mục ~/.cassandra.
Mã:
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Cập nhật tệp cqlshrc với các quyền cần thiết.
Mã:
$ sudo chmod 600 ~/.cassandra/cqlshrc$ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Mở tệp để chỉnh sửa.
Mã:
$ nano ~/.cassandra/cqlshrc
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. Tìm phần sau và điền tên người dùng và mật khẩu của bạn vào.
Mã:
....[xác thực];; Nếu Cassandra đã bật xác thực, hãy điền vào các tùy chọn sauusername = [superuser]password = [password]....
Chỉnh sửa bất kỳ cài đặt nào khác mà bạn muốn thay đổi. Một số cài đặt đượ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.

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.

Đăng nhập vào shell Cassandra bằng các 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.1 | CQL spec 3.4.5 | Native protocol v5]Sử dụng HELP để được trợ giúp.username@cqlsh>

5.3 - Đổi tên Cluster​

Cuối cùng, chúng ta sẽ đổi tên tên cluster từ Test Cluster thành tên bạn chọn.

Đăng nhập vào terminal cqlsh.
Mã:
$ cqlsh
Thay thế [clustername] bằng tên cluster 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> exit
Mở tệp /etc/cassandra/conf/cassandra.yaml để chỉnh sửa.
Mã:
$ sudo nano /etc/cassandra/conf/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. Điều 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 Cluster tại 127.0.0.1:9042[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]Sử dụng HELP để được trợ giúp.username@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