Install Cassandra Web Interface on CentOS 8 - CentLinux

Latest

Wednesday, 5 August 2020

Install Cassandra Web Interface on CentOS 8

Install Cassandra Web Interface on CentOS 8

In this article, you will learn how to install Cassandra Web interface on CentOS 8.

 

Table of Contents:

     

    What is Cassandra Web? :

    Cassandra Web is a web interface to Apache Cassandra with AngularJS and server-sent events. Cassandra Web is free and open source and its source is available at GitHub.

    Cassandra Web is very simple application with limited features, but it fulfills the purpose of monitoring of complete Apache Cassandra cluster via a single web interface.

     

    Environment Specification:

    Although it is not necessary to install Cassandra Web on a Apache Cassandra node. But for the sake of simplicity, we are installing the Cassandra Web on the same machine, on which we have installed Apache Cassandra.

     

    Installing Ruby on CentOS 8:

    We are required Rubygems package manager to install Cassandra Web on CentOS 8. Therefore, we are installing the Ruby on CentOS 8 with related packages by using dnf command.

    [root@cassandra-01 ~]# dnf install -y rubygems ruby-devel Last metadata expiration check: 0:00:04 ago on Tue 04 Aug 2020 10:26:27 PM PKT. Dependencies resolved. ================================================================================ Package Arch Version Repo Size ================================================================================ Installing: ruby-devel x86_64 2.5.5-105.module_el8.1.0+214+9be47fd7 AppStream 126 k rubygems noarch 2.7.6.2-105.module_el8.1.0+214+9be47fd7 AppStream 308 k Installing dependencies: ruby x86_64 2.5.5-105.module_el8.1.0+214+9be47fd7 AppStream 86 k ruby-irb noarch 2.5.5-105.module_el8.1.0+214+9be47fd7 AppStream 102 k ruby-libs x86_64 2.5.5-105.module_el8.1.0+214+9be47fd7 AppStream 2.9 M rubygem-json x86_64 2.1.0-105.module_el8.1.0+214+9be47fd7 AppStream 90 k rubygem-openssl x86_64 2.1.2-105.module_el8.1.0+214+9be47fd7 AppStream 190 k rubygem-psych x86_64 3.0.2-105.module_el8.1.0+214+9be47fd7 AppStream 95 k Installing weak dependencies: rubygem-bigdecimal x86_64 1.3.4-105.module_el8.1.0+214+9be47fd7 AppStream 97 k rubygem-did_you_mean noarch 1.2.0-105.module_el8.1.0+214+9be47fd7 AppStream 90 k rubygem-io-console x86_64 0.4.6-105.module_el8.1.0+214+9be47fd7 AppStream 66 k rubygem-rdoc noarch 6.0.1-105.module_el8.1.0+214+9be47fd7 AppStream 486 k Transaction Summary ================================================================================ Install 12 Packages Total download size: 4.6 M Installed size: 15 M Downloading Packages: (1/12): ruby-devel-2.5.5-105.module_el8.1.0+214 247 kB/s | 126 kB 00:00 (2/12): ruby-irb-2.5.5-105.module_el8.1.0+214+9 198 kB/s | 102 kB 00:00 (3/12): ruby-2.5.5-105.module_el8.1.0+214+9be47 143 kB/s | 86 kB 00:00 (4/12): rubygem-bigdecimal-1.3.4-105.module_el8 246 kB/s | 97 kB 00:00 (5/12): rubygem-did_you_mean-1.2.0-105.module_e 167 kB/s | 90 kB 00:00 (6/12): rubygem-io-console-0.4.6-105.module_el8 146 kB/s | 66 kB 00:00 (7/12): rubygem-json-2.1.0-105.module_el8.1.0+2 235 kB/s | 90 kB 00:00 (8/12): rubygem-openssl-2.1.2-105.module_el8.1. 419 kB/s | 190 kB 00:00 (9/12): rubygem-psych-3.0.2-105.module_el8.1.0+ 84 kB/s | 95 kB 00:01 (10/12): rubygem-rdoc-6.0.1-105.module_el8.1.0+ 376 kB/s | 486 kB 00:01 (11/12): rubygems-2.7.6.2-105.module_el8.1.0+21 352 kB/s | 308 kB 00:00 (12/12): ruby-libs-2.5.5-105.module_el8.1.0+214 799 kB/s | 2.9 MB 00:03 -------------------------------------------------------------------------------- Total 718 kB/s | 4.6 MB 00:06 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x8 1/12 Installing : ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noa 2/12 Installing : rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9b 3/12 Installing : rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+ 4/12 Installing : rubygem-io-console-0.4.6-105.module_el8.1.0+214+9b 5/12 Installing : rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7 6/12 Installing : rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47 7/12 Installing : rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd 8/12 Installing : rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7 9/12 Installing : rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.n 10/12 Installing : ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 11/12 Installing : ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x 12/12 Running scriptlet: ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x 12/12 Verifying : ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 1/12 Verifying : ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x 2/12 Verifying : ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noa 3/12 Verifying : ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x8 4/12 Verifying : rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9b 5/12 Verifying : rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+ 6/12 Verifying : rubygem-io-console-0.4.6-105.module_el8.1.0+214+9b 7/12 Verifying : rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7 8/12 Verifying : rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47 9/12 Verifying : rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd 10/12 Verifying : rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7 11/12 Verifying : rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.n 12/12 Installed: ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noarch ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+9be47fd7.noarch rubygem-io-console-0.4.6-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd7.x86_64 rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7.noarch rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.noarch Complete!

     

    Installing Cassandra Web Prerequisite Packages:

    To install Cassandra Web by using rubygems, we need the make and compilation packages. We are installing all the required packages by using a single dnf command.

    [root@cassandra-01 ~]# dnf install -y make gcc gcc-c++ redhat-rpm-config Last metadata expiration check: 0:00:35 ago on Tue 04 Aug 2020 10:26:27 PM PKT. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc x86_64 8.3.1-5.el8.0.2 AppStream 23 M gcc-c++ x86_64 8.3.1-5.el8.0.2 AppStream 12 M make x86_64 1:4.2.1-10.el8 BaseOS 498 k redhat-rpm-config noarch 122-1.el8 AppStream 83 k Installing dependencies: annobin x86_64 8.90-1.el8.0.1 AppStream 201 k binutils x86_64 2.30-73.el8 BaseOS 5.7 M cpp x86_64 8.3.1-5.el8.0.2 AppStream 10 M dwz x86_64 0.12-9.el8 AppStream 109 k efi-srpm-macros noarch 3-2.el8 AppStream 22 k ghc-srpm-macros noarch 1.4.2-7.el8 AppStream 9.3 k glibc-devel x86_64 2.28-101.el8 BaseOS 1.0 M glibc-headers x86_64 2.28-101.el8 BaseOS 473 k go-srpm-macros noarch 2-16.el8 AppStream 14 k isl x86_64 0.16.1-6.el8 AppStream 841 k kernel-headers x86_64 4.18.0-193.14.2.el8_2 BaseOS 4.0 M libmpc x86_64 1.0.2-9.el8 AppStream 59 k libstdc++-devel x86_64 8.3.1-5.el8.0.2 AppStream 2.0 M libxcrypt-devel x86_64 4.1.1-4.el8 BaseOS 25 k ocaml-srpm-macros noarch 5-4.el8 AppStream 9.4 k openblas-srpm-macros noarch 2-2.el8 AppStream 7.9 k perl-srpm-macros noarch 1-25.el8 AppStream 11 k python-srpm-macros noarch 3-38.el8 AppStream 14 k python3-rpm-macros noarch 3-38.el8 AppStream 13 k qt5-srpm-macros noarch 5.12.5-3.el8 AppStream 10 k rust-srpm-macros noarch 5-2.el8 AppStream 9.2 k unzip x86_64 6.0-43.el8 BaseOS 195 k zip x86_64 3.0-23.el8 BaseOS 270 k Transaction Summary ================================================================================ Install 27 Packages Total download size: 62 M Installed size: 167 M Downloading Packages: (1/27): dwz-0.12-9.el8.x86_64.rpm 315 kB/s | 109 kB 00:00 (2/27): efi-srpm-macros-3-2.el8.noarch.rpm 119 kB/s | 22 kB 00:00 (3/27): annobin-8.90-1.el8.0.1.x86_64.rpm 335 kB/s | 201 kB 00:00 (4/27): cpp-8.3.1-5.el8.0.2.x86_64.rpm 297 kB/s | 10 MB 00:35 (5/27): ghc-srpm-macros-1.4.2-7.el8.noarch.rpm 52 kB/s | 9.3 kB 00:00 (6/27): go-srpm-macros-2-16.el8.noarch.rpm 26 kB/s | 14 kB 00:00 (7/27): gcc-c++-8.3.1-5.el8.0.2.x86_64.rpm 310 kB/s | 12 MB 00:40 (8/27): libmpc-1.0.2-9.el8.x86_64.rpm 125 kB/s | 59 kB 00:00 (9/27): isl-0.16.1-6.el8.x86_64.rpm 130 kB/s | 841 kB 00:06 (10/27): ocaml-srpm-macros-5-4.el8.noarch.rpm 39 kB/s | 9.4 kB 00:00 (11/27): openblas-srpm-macros-2-2.el8.noarch.rp 26 kB/s | 7.9 kB 00:00 (12/27): perl-srpm-macros-1-25.el8.noarch.rpm 47 kB/s | 11 kB 00:00 (13/27): python-srpm-macros-3-38.el8.noarch.rpm 54 kB/s | 14 kB 00:00 (14/27): python3-rpm-macros-3-38.el8.noarch.rpm 55 kB/s | 13 kB 00:00 (15/27): qt5-srpm-macros-5.12.5-3.el8.noarch.rp 43 kB/s | 10 kB 00:00 (16/27): redhat-rpm-config-122-1.el8.noarch.rpm 107 kB/s | 83 kB 00:00 (17/27): rust-srpm-macros-5-2.el8.noarch.rpm 9.8 kB/s | 9.2 kB 00:00 (18/27): libstdc++-devel-8.3.1-5.el8.0.2.x86_64 298 kB/s | 2.0 MB 00:07 (19/27): glibc-devel-2.28-101.el8.x86_64.rpm 355 kB/s | 1.0 MB 00:02 (20/27): glibc-headers-2.28-101.el8.x86_64.rpm 349 kB/s | 473 kB 00:01 (21/27): gcc-8.3.1-5.el8.0.2.x86_64.rpm 455 kB/s | 23 MB 00:52 (22/27): libxcrypt-devel-4.1.1-4.el8.x86_64.rpm 188 kB/s | 25 kB 00:00 (23/27): make-4.2.1-10.el8.x86_64.rpm 401 kB/s | 498 kB 00:01 (24/27): unzip-6.0-43.el8.x86_64.rpm 358 kB/s | 195 kB 00:00 (25/27): zip-3.0-23.el8.x86_64.rpm 294 kB/s | 270 kB 00:00 (26/27): kernel-headers-4.18.0-193.14.2.el8_2.x 602 kB/s | 4.0 MB 00:06 (27/27): binutils-2.30-73.el8.x86_64.rpm 393 kB/s | 5.7 MB 00:14 -------------------------------------------------------------------------------- Total 1.0 MB/s | 62 MB 01:02 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : libmpc-1.0.2-9.el8.x86_64 1/27 Running scriptlet: libmpc-1.0.2-9.el8.x86_64 1/27 Installing : cpp-8.3.1-5.el8.0.2.x86_64 2/27 Running scriptlet: cpp-8.3.1-5.el8.0.2.x86_64 2/27 Installing : unzip-6.0-43.el8.x86_64 3/27 Installing : zip-3.0-23.el8.x86_64 4/27 Installing : kernel-headers-4.18.0-193.14.2.el8_2.x86_64 5/27 Running scriptlet: glibc-headers-2.28-101.el8.x86_64 6/27 Installing : glibc-headers-2.28-101.el8.x86_64 6/27 Installing : libxcrypt-devel-4.1.1-4.el8.x86_64 7/27 Installing : glibc-devel-2.28-101.el8.x86_64 8/27 Running scriptlet: glibc-devel-2.28-101.el8.x86_64 8/27 Installing : binutils-2.30-73.el8.x86_64 9/27 Running scriptlet: binutils-2.30-73.el8.x86_64 9/27 Installing : rust-srpm-macros-5-2.el8.noarch 10/27 Installing : qt5-srpm-macros-5.12.5-3.el8.noarch 11/27 Installing : python3-rpm-macros-3-38.el8.noarch 12/27 Installing : python-srpm-macros-3-38.el8.noarch 13/27 Installing : perl-srpm-macros-1-25.el8.noarch 14/27 Installing : openblas-srpm-macros-2-2.el8.noarch 15/27 Installing : ocaml-srpm-macros-5-4.el8.noarch 16/27 Installing : libstdc++-devel-8.3.1-5.el8.0.2.x86_64 17/27 Installing : isl-0.16.1-6.el8.x86_64 18/27 Running scriptlet: isl-0.16.1-6.el8.x86_64 18/27 Installing : gcc-8.3.1-5.el8.0.2.x86_64 19/27 Running scriptlet: gcc-8.3.1-5.el8.0.2.x86_64 19/27 Installing : annobin-8.90-1.el8.0.1.x86_64 20/27 Installing : go-srpm-macros-2-16.el8.noarch 21/27 Installing : ghc-srpm-macros-1.4.2-7.el8.noarch 22/27 Installing : efi-srpm-macros-3-2.el8.noarch 23/27 Installing : dwz-0.12-9.el8.x86_64 24/27 Installing : redhat-rpm-config-122-1.el8.noarch 25/27 Installing : gcc-c++-8.3.1-5.el8.0.2.x86_64 26/27 Installing : make-1:4.2.1-10.el8.x86_64 27/27 Running scriptlet: make-1:4.2.1-10.el8.x86_64 27/27 Verifying : annobin-8.90-1.el8.0.1.x86_64 1/27 Verifying : cpp-8.3.1-5.el8.0.2.x86_64 2/27 Verifying : dwz-0.12-9.el8.x86_64 3/27 Verifying : efi-srpm-macros-3-2.el8.noarch 4/27 Verifying : gcc-8.3.1-5.el8.0.2.x86_64 5/27 Verifying : gcc-c++-8.3.1-5.el8.0.2.x86_64 6/27 Verifying : ghc-srpm-macros-1.4.2-7.el8.noarch 7/27 Verifying : go-srpm-macros-2-16.el8.noarch 8/27 Verifying : isl-0.16.1-6.el8.x86_64 9/27 Verifying : libmpc-1.0.2-9.el8.x86_64 10/27 Verifying : libstdc++-devel-8.3.1-5.el8.0.2.x86_64 11/27 Verifying : ocaml-srpm-macros-5-4.el8.noarch 12/27 Verifying : openblas-srpm-macros-2-2.el8.noarch 13/27 Verifying : perl-srpm-macros-1-25.el8.noarch 14/27 Verifying : python-srpm-macros-3-38.el8.noarch 15/27 Verifying : python3-rpm-macros-3-38.el8.noarch 16/27 Verifying : qt5-srpm-macros-5.12.5-3.el8.noarch 17/27 Verifying : redhat-rpm-config-122-1.el8.noarch 18/27 Verifying : rust-srpm-macros-5-2.el8.noarch 19/27 Verifying : binutils-2.30-73.el8.x86_64 20/27 Verifying : glibc-devel-2.28-101.el8.x86_64 21/27 Verifying : glibc-headers-2.28-101.el8.x86_64 22/27 Verifying : kernel-headers-4.18.0-193.14.2.el8_2.x86_64 23/27 Verifying : libxcrypt-devel-4.1.1-4.el8.x86_64 24/27 Verifying : make-1:4.2.1-10.el8.x86_64 25/27 Verifying : unzip-6.0-43.el8.x86_64 26/27 Verifying : zip-3.0-23.el8.x86_64 27/27 Installed: annobin-8.90-1.el8.0.1.x86_64 binutils-2.30-73.el8.x86_64 cpp-8.3.1-5.el8.0.2.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch gcc-8.3.1-5.el8.0.2.x86_64 gcc-c++-8.3.1-5.el8.0.2.x86_64 ghc-srpm-macros-1.4.2-7.el8.noarch glibc-devel-2.28-101.el8.x86_64 glibc-headers-2.28-101.el8.x86_64 go-srpm-macros-2-16.el8.noarch isl-0.16.1-6.el8.x86_64 kernel-headers-4.18.0-193.14.2.el8_2.x86_64 libmpc-1.0.2-9.el8.x86_64 libstdc++-devel-8.3.1-5.el8.0.2.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 make-1:4.2.1-10.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch perl-srpm-macros-1-25.el8.noarch python-srpm-macros-3-38.el8.noarch python3-rpm-macros-3-38.el8.noarch qt5-srpm-macros-5.12.5-3.el8.noarch redhat-rpm-config-122-1.el8.noarch rust-srpm-macros-5-2.el8.noarch unzip-6.0-43.el8.x86_64 zip-3.0-23.el8.x86_64 Complete!

     

    Installing Cassandra Web Interface on CentOS 8:

    Now, we are ready to install Cassandra Web interface. Therefore, we are executing the following gem command to install it on our CentOS 8 server.

    [root@cassandra-01 ~]# gem install cassandra-web Building native extensions. This could take a while... Successfully installed eventmachine-1.2.7 Fetching: thin-1.7.2.gem (100%) Building native extensions. This could take a while... Successfully installed thin-1.7.2 Fetching: ione-1.2.4.gem (100%) Successfully installed ione-1.2.4 Fetching: cassandra-driver-3.2.4.gem (100%) Building native extensions. This could take a while... Successfully installed cassandra-driver-3.2.4 Fetching: cassandra-web-0.5.0.gem (100%) Successfully installed cassandra-web-0.5.0 5 gems installed

    Ruby Bundler gem is also required by Cassandra Web interface. Therefore we are also installing it now.

    [root@cassandra-01 ~]# gem install bundler Fetching: bundler-2.1.4.gem (100%) Successfully installed bundler-2.1.4 1 gem installed

     

    Configure CentOS 8 Firewall for Cassandra Web:

    Cassandra Web interface runs at default port 3000/tcp. Therefore, we need to allow incoming traffic through this port in Linux firewall.

    [root@cassandra-01 ~]# firewall-cmd --permanent --add-port=3000/tcp success [root@cassandra-01 ~]# firewall-cmd --reload success

     

    Create a Database User for Cassandra Web:

    To access the Apache Cassandra nodes, Cassandra Web interface requires an Admin user. Therefore, we are creating a database user for this purpose as follows.

    [root@cassandra-01 ~]# cqlsh -u ahmer -p Ahmer@1234 Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.7 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. ahmer@cqlsh> CREATE ROLE cassweb WITH PASSWORD = 'Cassweb@1234' AND SUPERUSER = true AND LOGIN = true; ahmer@cqlsh> exit

     

    Starting the Cassandra Web Interface:

    Start the Cassandra Web interface by using the following command syntax. If you have running the Apache Cassandra database on another node then you have to change the hosts address from the following command according to your environment.

    [root@cassandra-01 ~]# cassandra-web --hosts '127.0.0.1' --port '9042' --username 'cassweb' --password 'Cassweb@1234' I, [2020-08-01T13:14:42.011519 #52137] INFO -- : Establishing control connection I, [2020-08-01T13:14:42.131120 #52137] INFO -- : Refreshing connected host's metadata I, [2020-08-01T13:14:42.171751 #52137] INFO -- : Completed refreshing connected host's metadata I, [2020-08-01T13:14:42.173263 #52137] INFO -- : Refreshing peers metadata I, [2020-08-01T13:14:42.176922 #52137] INFO -- : Completed refreshing peers metadata I, [2020-08-01T13:14:42.177016 #52137] INFO -- : Refreshing schema I, [2020-08-01T13:14:42.284935 #52137] INFO -- : Schema refreshed I, [2020-08-01T13:14:42.285016 #52137] INFO -- : Control connection established I, [2020-08-01T13:14:42.285665 #52137] INFO -- : Creating session I, [2020-08-01T13:14:42.556420 #52137] INFO -- : Session created Thin web server (v1.7.2 codename Bachmanity) Maximum connections set to 1024 Listening on 0.0.0.0:3000, CTRL+C to stop

    Open URL http://cassandra-01.centlinux.com:3000 in a client's browser e.g Google Chrome.

    01-install-cassandra-web-interface-on-centos-8-cluster-status

    Cassandra Web does not provide any user authentication. However, we can configure HTTP basic authentication to control access to Cassandra Web interface.

    Click on system_schema.

    02-install-cassandra-web-interface-on-centos-8-keyspace

    Cassandra Web interface is working fine.

     

    Create a Systemd Service for Cassandra Web:

    To automate startup of Cassandra Web application, we can create a simple Systemd service.

    Create a Systemd service file for Cassandra Web.

    [root@cassandra-01 ~]# vi /usr/lib/systemd/system/cassweb.service

    Add following lines of code therein.

    [Unit] Description=Cassandra Web [Service] Type=simple ExecStart=cassandra-web --hosts '127.0.0.1' --port '9042' --username 'cassweb' --password 'Cassweb@1234' [Install] WantedBy=multi-user.target

    Enable and start Cassandra Web Service.

    [root@cassandra-01 ~]# systemctl enable --now cassweb.service Created symlink /etc/systemd/system/multi-user.target.wants/cassweb.service รข /usr/lib/systemd/system/cassweb.service.

    Cassandra Web service has been started.

     

    Conclusion:

    Our Cassandra Web interface has been installed on CentOS 8 and working fine. Cassandra: The Definitive Guide: Distributed Data at Web Scale 2nd Edition by Jeff Carpenter is a very good book and we strongly recommend that you should read it.

    No comments:

    Post a comment