0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Road to Cassandra Day】Cassandra学習環境を準備する

Posted at

はじめに

今年、2023年6月1日に、Cassandra Dayが日本でも開催されます。
Cassandra Dayは、昨年、ベルリン、ロンドン、アムステルダム、ハノイ、ジャカルタ、ヒューストン、サンタクララ、シアトル、シンガポールでも開催されました。

今回の東京での開催に向けて、Apache Cassandraに関する記事を発表していきます。

image.png

Apache Cassandraについて

Apache Cassandraとは、一言でいうなら、オープンソースの分散データベース管理システムです。

他の分散データベース管理システム同様、複数の汎用サーバーを用いて、ひとつのデータベースを構築します(開発などの目的のため、一つのサーバーのみで構成することも可能です)。

ここでは、詳しい説明は割愛し、興味のある方へのご紹介の役割は、公式サイトやWikipediaに譲ります。

Cassandra学習環境を準備する

コンテナテクノロジーの登場によって、分散アーキテクチャーを持つシステムを試験的に利用する環境の構築は、以前に比べて格段に容易になりました。

Apache Cassandraについて、Docker Official Imageが公開されています。

Dockerが利用可能になっている(インストールされ、起動されている)ことを前提として、Cassandraの利用方法を見ていきます。

※ここでは、M1 Mac(macOS Monterey 12.6.2)とDocker Desktop(4.17.0)を使った確認結果を紹介します。

コンソールから、以下のコマンドを入力します。

docker run -d --name my-cassandra cassandra

次のような出力が確認されるはずです。

% docker run -d --name my-cassandra cassandra
f83b7d143ba22bd3f95f9c447894f9aee1276366dea327e60c69474648db9657

この時点で、Docker Desktopでは、以下のような画面が確認できるでしょう。

image.png

起動状況をログで確認します。コンソール上で、以下のコマンドを入力します。

docker logs -f my-cassandra

すると、こんな感じの出力が確認できるはずです。

INFO  [main] 2023-05-01 01:08:41,106 CassandraDaemon.java:769 - Startup complete
INFO  [CompactionExecutor:1] 2023-05-01 01:08:41,120 CompactionTask.java:247 - Compacted (b5f16f00-e7bc-11ed-92d1-dd560259ddea) 6 sstables to [/var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-7-big,] to level=0.  0.810KiB to 0.659KiB (~81% of original) in 39ms.  Read Throughput = 20.432KiB/s, Write Throughput = 16.637KiB/s, Row Throughput = ~2/s.  6 total partitions merged to 1.  Partition merge counts were {6:1, }. Time spent writing keys = 21ms
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,121 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-6-big
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,122 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-3-big
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,123 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-2-big
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,124 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-4-big
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,124 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-5-big
INFO  [NonPeriodicTasks:1] 2023-05-01 01:08:41,125 SSTable.java:127 - Deleting sstable: /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb-1-big
INFO  [OptionalTasks:1] 2023-05-01 01:08:51,196 CassandraRoleManager.java:354 - Created default superuser role 'cassandra'

上記引用1行目のように、Startup completeという文言が出力されているのを確認します。
そしたら、次に以下のコマンドを実行します(その前に、Ctrl+Cを入力してログ出力を止めるか、別のコンソールを利用します)。

docker exec -it my-cassandra cqlsh

以下のような、コマンドプロンプトが出力されます。

% docker exec -it my-cassandra cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.0 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cqlsh> 

この段階で、データベースは初期状態ですが、次のコマンドでデフォルトの状態を確認してみます。

desc keyspaces

次のように、システム関連の出力が確認できます。

cqlsh> desc keyspaces

system       system_distributed  system_traces  system_virtual_schema
system_auth  system_schema       system_views 

cqlsh> 

cqlshコマンドプロンプトから抜けるには、exitサブコマンドを実行します。

cqlsh> exit
%

最後に

これで、(本稿タイトルである)「Cassandra学習環境を準備する」ことができました。

(今回は説明抜きに手順のみ提示したCQLの利用方法など)さらに学習を進めるための情報、そして、そもそもApache Cassandraとはどんなデータベースなのか、あるいは、(今回は最も単純な形で環境を準備しましたが)より実践的な環境構築の方法など、今後、別の記事として発表していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?