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.
Xác nhận cài đặt Java.
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.
Bây giờ tệp repo đã được tạo, hãy cài đặt Cassandra.
Đặt Python 3.8 làm phiên bản Python mặc định.
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.
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.
Xác nhận cài đặt cqlsh.
Dán mã sau vào đó.
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ụ.
Kích hoạt và khởi động dịch vụ Cassandra.
Kiểm tra trạng thái của dịch vụ.
Bạn cũng có thể xác minh trạng thái bằng lệnh nodetool.
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.
Mở tệp cassandra.yaml để chỉnh sửa.
Xác định vị trí các tham số sau trong tệp này.
Thay đổi giá trị của các tham số như được đưa ra bên dưới.
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.
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.
Đăng xuất.
Đăng nhập lại bằng tài khoản siêu người dùng mới.
Xóa các quyền nâng cao khỏi tài khoản cassandra mặc định.
Cấp tất cả các quyền cho tài khoản siêu người dùng.
Đăng xuất.
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.
Cập nhật tệp cqlshrc với các quyền cần thiết.
Mở tệp để chỉnh sửa.
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.
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.
Đăng nhập vào terminal cqlsh.
Thay thế [clustername] bằng tên cluster mới của bạn trong lệnh bên dưới.
Thoát khỏi shell
Mở tệp /etc/cassandra/conf/cassandra.yaml để chỉnh sửa.
Thay thế giá trị của biến cluster_name bằng tên bạn chọn.
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.
Khởi động lại Cassandra.
Đăng nhập vào shell để xem tên mới.
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
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
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
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
Xác nhận cài đặt Python.
Mã:
$ python --versionPython 3.8.8
Cài đặt cqlsh bằng trình quản lý gói pip Python.
Mã:
$ pip3 install --user 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
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
Tải lại daemon dịch vụ.
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl enable cassandra --now
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>
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ã:
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Mã:
authenticator: AllowAllAuthenticatorauthorizer: AllowAllAuthorizerroles_validity_in_ms: 2000permissions_validity_in_ms: 2000
Mã:
. . .authenticator: org.apache.cassandra.auth.PasswordAuthenticatorauthorizer: org.apache.cassandra.auth.CassandraAuthorizerroles_validity_in_ms: 0permissions_validity_in_ms: 0. . .
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
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;
Mã:
cassandra@cqlsh> exit
Mã:
$ cqlsh -u username -p yourpassword
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;
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]';
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
Mã:
$ sudo chmod 600 ~/.cassandra/cqlshrc$ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Mã:
$ nano ~/.cassandra/cqlshrc
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]....
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
Mã:
username@cqlsh> CẬP NHẬT system.local ĐẶT cluster_name = '[new_name]' WHERE KEY = 'local';
Mã:
username@cqlsh> exit
Mã:
$ sudo nano /etc/cassandra/conf/cassandra.yaml
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]'...
Xóa bộ đệm hệ thống Cassandra.
Mã:
$ nodetool flush system
Mã:
$ sudo systemctl restart cassandra
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>