LoginSignup
0
0

More than 1 year has passed since last update.

Apache Cassandraの開発環境を構築する

Posted at

概要

Apache Cassandraをソースからビルドして実行し、デバッグするところまで実施する手順を紹介します。
大まかには以下の流れです。

  1. CentOSサーバーのセットアップ
  2. ソースからCassandraをビルドする
  3. IntelliJでCassandraを実行・デバッグしてみる
  4. コミュニティに登録する

環境情報

Cassandraのビルドや実行は、CentOS7のサーバーで行います。そのため、virtualboxなどを用いて、CentOS7サーバを用意しておきます。Java 8もインストールしておきます。

  • OS:CentOS 7
  • Java 8
[shoshii@cassandra-1 cassandra]$ java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

手順

1. CentOSサーバーのセットアップ

以下はCentOSサーバーでの作業です。

ant

antをインストールします。

RPMパッケージをダウンロード

$ curl -O http://mirror.centos.org/altarch/7/os/aarch64/Packages/ant-1.9.4-2.el7.noarch.rpm

インストール

$ rpm -ivh ant-1.9.4-2.el7.noarch.rpm

バージョン確認

$ ant -version
Apache Ant(TM) version 1.9.4 compiled on November 5 2018

xwindow

今回はIntelliJをCentOS上で稼働させたいので、xwindowをインストールします。

  1. $ sudo yum groupinstall -y "X Window System"
  2. $ sudo yum groupinstall -y "GNOME Desktop"
  3. $ sudo reboot

VNC Server

今回は、MacからCentOS7にリモートデスクトップ接続をするため、VNC Serverをインストールします。

$ sudo yum install -y tigervnc-server

デスクトップを起動します。

$ vncserver -geometry 1980x1080

Macから、リモートデスクトップで接続できるか確認します。

  • Finder -> 移動 -> サーバーへ接続 -> vnc://<CentOSのhost>:5901

注意:ポート番号は、起動しているリモートデスクトップサーバーの数に依ります。1つ目に起動したサーバーに接続する場合、ポート番号は5901になるようです。

スクリーンショット 2021-07-13 8.25.24.png
注意:接続ができない場合、firewalldが有効になっている可能性があります。sudo systemctl status firewalldなどで状態確認後、セキュリティ上問題なければ停止・無効化します。

停止

$ sudo systemctl stop firewalld

無効化

$ sudo systemctl disable firewalld

IntelliJ IDEA

IntelliJ IDEA Community 版をインストールします。
MacではなくCentOSにインストールする点、ご注意ください

  1. CentOSサーバーのブラウザで、JetBrain ToolBoxサイトにアクセスし、ToolBoxの tar.gz(Linux)をダウンロード Screenshot from 2021-07-13 08-46-35.png
  2. 上記の圧縮ファイルを解凍し、中身を実行
  3. IntelliJ IDEA Community Edition を installする。インストール後の状態:Screenshot from 2021-07-13 09-00-55.png

2. ソースコードのビルドと実行

CentOSサーバーでの作業です。
CentOSのセットアップが済んだら、Cassandraのソースをダウンロードしビルドします。
Community doc developmentを参考にして実施していきます。

公式のリポジトリからクローンしてきます。

$ git clone https://gitbox.apache.org/repos/asf/cassandra.git cassandra

ブランチを確認してみます。

[shoshii@cassandra-1 cassandra]$ cd cassandra
[shoshii@cassandra-1 cassandra]$ git branch -a
* trunk
  remotes/origin/HEAD -> origin/trunk
  remotes/origin/cassandra-1.0
  remotes/origin/cassandra-1.1
  remotes/origin/cassandra-1.2
  remotes/origin/cassandra-2.0
  remotes/origin/cassandra-2.1
  remotes/origin/cassandra-2.2
  remotes/origin/cassandra-3.0
  remotes/origin/cassandra-3.11
  remotes/origin/cassandra-4.0
  remotes/origin/cassandra-4.0.0
  remotes/origin/trunk

今回は、バージョン4.0をターゲットにします。

[shoshii@cassandra-1 cassandra]$ git checkout cassandra-4.0
Branch cassandra-4.0 set up to track remote branch cassandra-4.0 from origin.
Switched to a new branch 'cassandra-4.0'
[shoshii@cassandra-1 cassandra]$ 

antでビルドします。

[shoshii@cassandra-1 cassandra]$ ant
Buildfile: /home/shoshii/qiita/cassandra/build.xml

validate-build-conf:
...
略
...
      [jar] Building jar: /home/shoshii/qiita/cassandra/build/tools/lib/fqltool.jar

BUILD SUCCESSFUL
Total time: 20 seconds
[shoshii@cassandra-1 cassandra]$ 

ant generate-idea-filesでIntelliJ 向けのファイルをビルドします。

[shoshii@cassandra-1 cassandra]$ ant generate-idea-files
Buildfile: /home/shoshii/qiita/cassandra/build.xml
...
略
...
BUILD SUCCESSFUL
Total time: 1 second
[shoshii@cassandra-1 cassandra]$ 

3. IntelliJでCassandraを実行・デバッグしてみる

MacからVNC接続でCentOSのデスクトップにアクセスします。

  • CentOSで実行:$ vncserver -geometry 1980x1080
  • Macで実行:Finder -> 移動 -> サーバーへ接続 -> vnc://<CentOSのhost>:5901

IntelliJを起動します。

  • アプリケーション -> プログラミング -> IntelliJ IDEA Community Edition

cloneしたcassandraのディレクトリをプロジェクトとして開きます。

  • ツールメニュー -> File -> Open -> git clone した cassandra ディレクトリ

Screenshot from 2021-07-14 05-54-49.png

Cassandraの実行

Cassandraを実行します。

  • ツールメニュー -> Run -> Run Cassandra

Screenshot from 2021-07-14 06-02-41.png

Cassandraに、クライアントツールで接続してみます。

1.CentOSサーバーにMacのターミナルやCentOSの端末でSSHログイン
2.Cassandraをcloneしたディレクトリに移動

[shoshii@cassandra-1 cassandra]$ pwd
/home/shoshii/qiita/cassandra

3.cqlsh起動

[shoshii@cassandra-1 cassandra]$ bin/cqlsh
Python 2.7 support is deprecated. Install Python 3.6+ or set CQLSH_NO_WARN_PY2 to suppress this message.

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

起動中のCassandraに接続が成功しました。
cqlshは、Cassandraに各種コマンドを実行するためのクライアントツールです。データのselectやinsertもこのツールで行うことができます。

4.cqlshコマンド実行
試しに、desc keyspacesコマンドでキースペース一覧を表示してみます。

cqlsh> desc keyspaces;

system       system_distributed  system_traces  system_virtual_schema
system_auth  system_schema       system_views   test                 

cqlsh> 

Cassandraのデバッグ

次に、Cassandraをデバッグ実行します。

まず、先程起動したCassandraプロセスを停止します。
* ツールメニュー -> Run -> Stop Cassandra をクリックします

  • src/java/org/apache/cassandra/service/CassandraDaemon.java を開きます。このファイルには、Cassandraデーモンプロセスを起動する時の処理が書かれています。 Screenshot from 2021-07-14 06-19-46.png
  • setupメソッドの先頭にブレークポイントを入れてみます。
  • ツールメニュー -> Run -> Debug Cassandra をクリックします Screenshot from 2021-07-14 06-25-10.png ステップ実行を開始できました。

4. コミュニティに登録する

Apache Cassandraのコミュニティに登録し、各種情報を受け取れるようにします。Cassandraを利用する上での質問をしたり、開発の議論に参加することもできます。

Community ページにアクセスし、MLに参加します

Slackチャネルもあるようですが、apache.orgドメインのメールアドレスがないと参加できない?ようです(調査中)

ML

参考

参考にさせていただいたページです。

以上です。

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