Wyszukiwanie w witrynie

Zainstaluj Cassandrę w CentOS Linux


Kroki instalacji Apache Cassandra i przykłady poleceń CQL

1. Wstęp

Cassandra to system zarządzania rozproszoną bazą danych typu open source z szerokim magazynem kolumn i bazą danych NoSQL, który może obsłużyć ogromne ilości danych na wielu standardowych serwerach bez pojedynczego punktu awarii. Został stworzony przez Apache Software Foundation i jest napisany w Javie. W tym artykule omówimy krok po kroku proces instalacji Cassandry w systemie CentOS 7 Linux.

2. Warunki wstępne

Wszystkie poniższe polecenia należy uruchomić jako użytkownik root lub sudo.

2.1. Zainstaluj Pythona 2.7

W systemie CentOS 7 preinstalowany jest język Python 2.7. Jeśli z jakiegoś powodu go brakuje, możesz użyć następującego polecenia, aby go zainstalować:

yum -y install python
python --version
Python 2.7.5

2.2. Zainstaluj Javę

Użyj poniższych poleceń, aby zainstalować najnowszą wersję Java 8 i sprawdzić instalację.

yum install java-1.8.0-openjdk-devel
java -version

Przykładowe dane wyjściowe:

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

3. Jak zainstalować Cassandrę

Najpierw dodajmy repozytorium Cassandra. Aby to zrobić, utwórz plik o nazwie cassandra.repo w katalogu /etc/yum.repos.d/:

vi /etc/yum.repos.d/cassandra.repo

Dodaj w nim następujące linie:

[cassandra]
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

Naciśnij klawisz ESC i wpisz :wq, aby zapisać plik i zamknąć go.

Sprawdź, czy repozytorium Cassandra zostało dodane. Poniższe polecenie zapewni zainstalowane i włączone repozytoria:

yum repolist

Wyświetl listę włączonych repozytoriów yum

Po dodaniu repozytorium uruchom następującą komendę, aby zainstalować Cassandrę w systemie CentOS:

yum -y install cassandra

Włącz i uruchom usługę Cassandra:

systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
systemctl start Cassandra

Zapewnij status Cassandry:

systemctl status cassandra

Sprawdź status Cassandry

Użyj poniższego polecenia, aby uzyskać szczegółowe informacje o klastrze, takie jak jego stan, obciążenie i identyfikatory:

nodetool status

Przykładowe dane wyjściowe:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns (effective)  Host ID                               Rack
UN  127.0.0.1  69.08 KiB  16      100.0%            bf2df7a9-54bc-41c9-8c6c-0b9322d10e71  rack1

Wyświetl szczegóły klastra

Na wyjściu

  • ONZ - w górę i w normie
  • Adres — adres IP węzła
  • Wczytaj — po wykluczeniu całej zawartości podkatalogu migawek, ilość danych systemu plików w katalogu danych Cassandra. Raz na 90 sekund. Zostanie zaktualizowany.
  • Tokeny - liczba tokenów przypisanych do węzła.
  • Posiada - ile danych posiada węzeł; węzeł może posiadać 33% pierścienia, ale wyświetlać 100%, jeśli współczynnik replikacji wynosi 3.
  • Identyfikator hosta — identyfikator sieciowy hosta
  • Stojak - Stelaż węzła, jeśli istnieje.

4. Cqlsh - CLI dla Cassandry

cqlsh to interfejs wiersza poleceń umożliwiający wykorzystanie CQL do łączenia się z Cassandrą (Cassandra Query Language). Jest zawarty w każdym pakiecie Cassandry i można go znaleźć obok pliku wykonywalnego Cassandry w katalogu bin/. Natywny sterownik protokołu Python służy do implementacji cqlsh, który łączy się z pojedynczym węzłem.

Aby uruchomić Cqlsh, uruchom:

cqlsh

Przykładowe dane wyjściowe:

Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>

Uruchom Cqlsh

5. Przykładowe polecenia CQL

5.1. Utwórz kluczową przestrzeń

W Cassandrze przestrzeń kluczy służy jako kontener danych, podobnie jak baza danych w systemach zarządzania relacyjnymi bazami danych (RDMBS)

cqlsh> CREATE KEYSPACE IF NOT EXISTS OsTechNix WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 };
cqlsh>

Sprawdź kluczowe spacje w systemie za pomocą poniższych poleceń.

cqlsh> SELECT * FROM system_schema.keyspaces;

Sprawdź spacje klawiszy

Aby wyświetlić wszystkie spacje klawiszy, uruchom:

cqlsh> desc keyspaces;

Zostaną wyświetlone wszystkie obszary kluczy w klastrze:

ostechnix  system_auth         system_schema  system_views
system     system_distributed  system_traces  system_virtual_schema

Pokaż wszystkie spacje klawiszy

5.2. Utwórz tabelę i wstaw przykładowe dane

Możesz użyć instrukcji CREATE TABLE definiującej typy danych dla każdej kolumny, tak jak zwykle robimy to w RDBMS. Dane są przechowywane w tabelach CQL zawierających wiersze kolumn, podobnie jak definicje SQL.

Aby utworzyć tabelę, musisz zdefiniować „klucz podstawowy” i inne pola danych. Postępuj zgodnie z poniższym przykładem tworzenia tabeli.

cqlsh> CREATE TABLE ostechnix.sample_table ( id UUID PRIMARY KEY, name text, birthday timestamp, nationality text, weight text, height text );
cqlsh>

Użyj instrukcji INSERT, aby wstawić proste dane do tabeli ostachnix.sample_table, którą utworzymy powyżej. W poniższym przykładzie do tabeli dodano dwa rekordy.

cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'KARTHICK', 'Indian');
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality, weight) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a804e3, 'MOHAN', 'Indian', '85');

5.3. Zapytanie o tabelę

Użyj instrukcji SELECT, aby zwrócić jeden lub więcej wierszy z tabeli.

cqlsh> SELECT * FROM ostechnix.sample_table;

Tabela zapytań

Tutaj * zwraca wszystkie dane z tabeli.

cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85';

Przykładowe dane wyjściowe:

InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"
cqlsh>

Cassandra nie uruchomi zapytania, które nie określi wartości dla wszystkich kolumn z klucza podstawowego w klauzuli „where” i wyświetli powyższy alert o błędzie, aby użyć „ZEZWALAJ NA FILTROWANIE”.

Przyczyną tego błędu jest to, że Cassandra nie będzie w stanie zidentyfikować węzła zawierającego wymagane wyniki, jeśli pełny klucz partycji nie zostanie uwzględniony w klauzuli WHERE. W rezultacie Cassandra będzie musiała przeskanować cały zbiór danych w każdym węźle, aby mieć pewność, że zidentyfikowała odpowiednie dane.

cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85' ALLOW FILTERING;

Filtruj elementy z tabeli

6. Podsumowanie

W tym artykule omówiliśmy procedury instalacji Cassandry i kilka przykładowych poleceń CQL. W nadchodzących artykułach szczegółowo omówimy Operację Cassandra.

Zasoby:

  • https://docs.datastax.com/en/cql-oss/3.3/cql/cqlIntro.html
  • https://docs.datastax.com/en/cassandra-oss/3.x/cassandra/install/installRHEL.html

Powiązane artykuły