【Datastax Enterprice】 DSE/RHELクラスターを構築してみた

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/
DSE(Datastax Enterprise)クラスターをRHEL(Red Hat Enterprise Linux)で構築する手順を説明していきます。
DSEクラスターを構築して、DSEを試してみましょう。
 
事前にインストールしたいDSEのバージョンでOSのバージョンがサポートされているか確認してください。今回は以下のバージョンで行います。
  • DSEバージョン: Datastax Enterprice:6.8.19
  • RHEL8

 

以下を事前にインストールしていきます。
  • EPEL(Extra Packages for Enterprise Linux)
  • libaio
  • Java(OpenJDK 8)
  • Python2.7

 

まず、RHELのバージョンが正しいか確認しましょう。
$ cat /etc/redhat-release
 
EPELのインストール
エンタープライズLinux用の追加パッケージを提供するリポジトリ。
yumを使ってEPELにあるパッケージをインストールします。
RHEL互換ディストリビューションをインストールするにはEPELが必要になります。
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

 

libaioパッケージをインストールします。
$ sudo yum install libaio -y
 
Java(OpenJDK 8)のインストール
$ sudo yum install java-1.8.0-openjdk -y
 
Javaのバージョン確認
$ java -version

 

Python2.7のインストール

$ sudo yum install wget -y
$ sudo yum install gcc openssl-devel bzip2-devel -y
$ wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
$ tar xzf Python-2.7.15.tgz
$ cd Python-2.7.15
$ sudo ./configure --enable-optimizations
$ sudo yum install make -y
$ sudo make altinstall
$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python

 

Pythonのバージョン確認
$ python -V

 

以上で、事前設定が完了しました。
 

DSE6.8のインストール

それでは、DSE6.8をインストールしていきましょう。
まず、DataStaxのYumリポジトリを/etc/yum.repos.d/datastax.repoという名前のファイルに追加します。
$ sudo vi /etc/yum.repos.d/datastax.repo
[datastax]
name=DataStax Repo for DataStax Enterprise
baseurl=https://rpm.datastax.com/enterprise/
enabled=1
gpgcheck=0

 

最新バージョンのDSEをインストールします。
$ sudo yum install dse-full -y

 

DSE6.8がインストールされたか確認しましょう。
$ dse -v
 

 

以上の設定を各ノードで行っていきます。
 

DSEクラスターの構成設定

それでは、DSEクラスターの構成を設定していきましょう。今回は、最低限の設定でクラスターを構築していきます。自身が構築したい環境に合わせて設定してください。

 

まず、クラスターの設定をしていきます。
cassandra.yamlを変更していきます。
$ sudo vi etc/dse/cassandra/cassandra.yaml

以下、変更例です。

Cluster_name: 'SIOS Cluster' → クラスター名
listen_address: 10.146.15.192 → ノードのIPアドレス
num_token: 128 → コメントアウト#を消す
endpoint_snitch: GossipingPropertyFileSnitch → GossipingPropertyFileSnitch推奨
seed: "10.146.15.192" → シードノードのIPアドレス(シードノードの場合、ノードのIPアドレス)
native_transport_address: 10.146.15.192 → ノードのIPアドレス
native_transport_broadcast_address: 10.146.15.192 → ノードのIPアドレス

 

GossipingPropertyFileSnitchにした場合、
データセンター名、ラック名を変更するには、cassandra-rackdc.propertiesで変更します。
$ sudo vi etc/dse/cassandra/cassandra-rackdc.properties
dc=dc1 → 変更
rack=rack1 → 変更

 

systemdを有効にします。
$ sudo service dse stop
$ sudo systemctl enable dse-all.target
$ sudo /usr/share/dse/tools/dse-convert-to-systemd dse

 

以上で、DSEを起動させる準備ができました。
 

DSEクラスターの構築

それでは、各ノードでDSEを起動し、DSEクラスターを構築します。
 
まず、シードノードを起動します。
DSEの起動
$ sudo systemctl start dse-all.target

 

nodetoolで起動しているかの確認をします。
$ nodetool status

 

以下のように、
ノードのStatusがUN(Up/Normal)となっていれば、起動できています。
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving/Stopped
--  Address        Load       Tokens       Owns    Host ID                               Rack
UN  10.146.15.192  2.26 MiB   128          ?       085b002a-acdd-46ed-a38f-b0ea0fffa8f8  rack1

 

続いてノードをどんどん追加していきましょう。
 
DSEの起動
$ sudo systemctl start dse-all.target

 

nodetoolで起動しているかの確認をします。
$ nodetool status

 

以下のように、
ノードが起動され、追加されているこを確認しましょう。
ノードが追加されていること、ノードのStatusがUN(Up/Normal)となっていれば正しく追加できています。
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving/Stopped
--  Address        Load       Tokens       Owns    Host ID                                Rack
UN  10.146.15.192  2.26 MiB   128          ?       085b002a-acdd-46ed-a38f-b0ea0fffa8f8   rack1
UN  10.146.15.201  1.34 MiB   128          ?       ca558240-ba34-49c9-b5a0-0aa2ba94beb6   rack1

 

さらにノードを追加したい場合は、
以上の手順通りに進めていってください。
 
 
アバター画像
About サイオステクノロジーの中の人 2 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる