Apache Cassandraの開発環境を構築する
概要
Apache Cassandraをソースからビルドして実行し、デバッグするところまで実施する手順を紹介します。
大まかには以下の流れです。
- CentOSサーバーのセットアップ
- ソースからCassandraをビルドする
- IntelliJでCassandraを実行・デバッグしてみる
- コミュニティに登録する
環境情報
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をインストールします。
$ sudo yum groupinstall -y "X Window System"
$ sudo yum groupinstall -y "GNOME Desktop"
$ 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になるようです。
注意:接続ができない場合、firewalld
が有効になっている可能性があります。sudo systemctl status firewalld
などで状態確認後、セキュリティ上問題なければ停止・無効化します。
停止
$ sudo systemctl stop firewalld
無効化
$ sudo systemctl disable firewalld
IntelliJ IDEA
IntelliJ IDEA Community 版をインストールします。
MacではなくCentOSにインストールする点、ご注意ください
- CentOSサーバーのブラウザで、JetBrain ToolBoxサイトにアクセスし、ToolBoxの tar.gz(Linux)をダウンロード
- 上記の圧縮ファイルを解凍し、中身を実行
- IntelliJ IDEA Community Edition を installする。インストール後の状態:
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 ディレクトリ
Cassandraの実行
Cassandraを実行します。
- ツールメニュー -> Run -> Run Cassandra
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デーモンプロセスを起動する時の処理が書かれています。 -
setup
メソッドの先頭にブレークポイントを入れてみます。 - ツールメニュー -> Run -> Debug Cassandra をクリックします ステップ実行を開始できました。
4. コミュニティに登録する
Apache Cassandraのコミュニティに登録し、各種情報を受け取れるようにします。Cassandraを利用する上での質問をしたり、開発の議論に参加することもできます。
Community ページにアクセスし、MLに参加します
Slackチャネルもあるようですが、apache.orgドメインのメールアドレスがないと参加できない?ようです(調査中)
ML
- User ML [email protected] へメール送信 -> 送信されてくるメールの案内に従い登録
- Dev ML [email protected] へメール送信 -> 送信されてくるメールの案内に従い登録
参考
参考にさせていただいたページです。
- CentOS7にJava8のビルドサーバ(Ant)構築手順
- CentOS 7で後からX windowsを追加インストールする方法
- MacからLinuxのデスクトップ環境へVNC接続する
- cassandra.apache.org
以上です。
Author And Source
この問題について(Apache Cassandraの開発環境を構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/shoshii/items/a733b7534638606209bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .