GridDBクイックスタート

GridDBをインストールする

ダウンロードとインストール

このブログのビデオバージョンはこちら:

GridDB Github Releases のページへ進み、最新バージョンのRPMをダウンロードします。

このリンクをコピーしてRPMをインストールする方法を推奨します。

$ wget \
https://github.com/griddb/griddb_nosql/releases/download/v4.2.0/griddb_nosql-4.2.0-1.linux.x86_64.rpm
$ sudo rpm -Uvh griddb_nosql-4.2.0-1.linux.x86_64.rpm

GridDBを起動して実行する前に、いくつかのファイアウォール設定を変更する必要があるかもしれません。その場合はひとまず下記コマンドをコンソールに入力しておき、後で設定変更を行うこともできます。

$ sudo export no_proxy=127.0.0.1
$ sudo service iptables stop

Conf Filesを編集する

gsadmユーザーとしてGridDBの設定ファイルを編集するのが最も簡単な方法です。sudoとsuコマンドを組み合わせることでgsadmユーザーに切り替えることができます。

$ sudo su - gsadm
$ vim conf/gs_cluster.json

まず、gs_cluster.jsonを編集してクラスタ名を設定する必要があります。デフォルトのクラスタ名 を”defaultCluster”に設定します。

{
        "dataStore":{
                "partitionNum":128,
                "storeBlockSize":"64KB"
        },
        "cluster":{
                "clusterName":"defaultCluster", "replicationNum":2, "notificationAddress":"239.0.0.1", "notificationPort":20000, "notificationInterval":"5s", "heartbeatInterval":"5s", "loadbalanceCheckInterval":"180s" }, "transaction":{ "notificationAddress":"239.0.0.1", "notificationPort":31999, "notificationInterval":"5s", "replicationMode":0, "replicationTimeoutInterval":"10s" }, "sync":{ "timeoutInterval":"30s" } }

gs_node.jsonへの編集は任意ですが、concurrencyの値をCPUコアの数に、storeMemoryLimitを希望の値に変更します。

{
        "dataStore":{
                "dbPath":"data",
                "storeMemoryLimit":"4096MB", "storeWarmStart":true, "concurrency":4, "logWriteMode":1, "persistencyMode":"NORMAL", "affinityGroupSize":4 }, ... snip .. }

デフォルトのadminユーザーのパスワードを設定します。(ここでは例としてパスワードを「admin」としますがこれは安全ではないので実際には別のパスワードを設定してください。)

$ gs_passwd admin
Password: admin
Retype password: admin

サービスを開始する

GridDB Community Editionにはinitスクリプトが含まれていないため、まずGridDBを手動で起動し、次にサービスを起動してから他のノードに接続してください。


$ gs_startnode 
$ gs_joincluster -u admin/admin

GridDB ステータスを確認する

GridDBを実行している場合は、gs_statを使用してそのステータスを確認できます。

$ gs_stat -u admin/admin
{
    "checkpoint": {
        "endTime": 1541699864633, 
        "mode": "NORMAL_CHECKPOINT", 
        "normalCheckpointOperation": 3, 
        "pendingPartition": 0, 
        "requestedCheckpointOperation": 0, 
        "startTime": 1541699857076
    }, 
    "cluster": {
        "activeCount": 1, 
        "clusterName": "defaultCluster", 
        "clusterStatus": "MASTER", 
        "designatedCount": 1, 
        "loadBalancer": "ACTIVE", 
        "master": {
            "address": "192.168.1.77", 
            "port": 10040
        }, 
        "nodeList": [
            {
                "address": "192.168.1.77", 
                "port": 10040
            }
        ], 
        "nodeStatus": "ACTIVE", 
        "notificationMode": "MULTICAST", 
        "partitionStatus": "NORMAL", 
        "startupTime": "2018-11-08T16:57:31Z", 
        "syncCount": 2
    }, 
    "currentTime": "2018-11-08T18:15:15Z", 
    "performance": {
        "backupCount": 0, 
        "batchFree": 0, 
        "checkpointFileAllocateSize": 262144, 
        "checkpointFileSize": 262144, 
        "checkpointFileUsageRate": 0, 
        "checkpointMemory": 0, 
        "checkpointMemoryLimit": 1073741824, 
        "checkpointWriteSize": 0, 
        "checkpointWriteTime": 0, 
        "currentCheckpointWriteBufferSize": 0, 
        "currentTime": 1541700915329, 
        "numBackground": 0, 
        "numConnection": 2, 
        "numNoExpireTxn": 0, 
        "numSession": 0, 
        "numTxn": 0, 
        "ownerCount": 128, 
        "peakProcessMemory": 68169728, 
        "processMemory": 68169728, 
        "recoveryReadSize": 262144, 
        "recoveryReadTime": 0, 
        "storeCompressionMode": "NO_BLOCK_COMPRESSION", 
        "storeDetail": {
            "batchFreeMapData": {
                "storeMemory": 0, 
                "storeUse": 0, 
                "swapRead": 0, 
                "swapWrite": 0
            }, 
            "batchFreeRowData": {
                "storeMemory": 0, 
                "storeUse": 0, 
                "swapRead": 0, 
                "swapWrite": 0
            }, 
            "mapData": {
                "storeMemory": 0, 
                "storeUse": 0, 
                "swapRead": 0, 
                "swapWrite": 0
            }, 
            "metaData": {
                "storeMemory": 0, 
                "storeUse": 0, 
                "swapRead": 0, 
                "swapWrite": 0
            }, 
            "rowData": {
                "storeMemory": 0, 
                "storeUse": 0, 
                "swapRead": 0, 
                "swapWrite": 0
            }
        }, 
        "storeMemory": 0, 
        "storeMemoryLimit": 4294967296, 
        "storeTotalUse": 0, 
        "swapRead": 0, 
        "swapReadSize": 0, 
        "swapReadTime": 0, 
        "swapWrite": 0, 
        "swapWriteSize": 0, 
        "swapWriteTime": 0, 
        "syncReadSize": 0, 
        "syncReadTime": 0, 
        "totalBackupLsn": 0, 
        "totalLockConflictCount": 0, 
        "totalOtherLsn": 0, 
        "totalOwnerLsn": 0, 
        "totalReadOperation": 0, 
        "totalRowRead": 0, 
        "totalRowWrite": 0, 
        "totalWriteOperation": 0
    }, 
    "recovery": {
        "progressRate": 1
    }, 
    "version": "4.0.0-33128 CE"
}

これで、GridDBに接続するためのクライアントソフトウェアをインストールする準備が整いました。

Java コネクタ

Javaをダウンロード・インストールする

ダウンロードする前に、元のユーザー(GridDB管理者ユーザーではない)に切り替えましょう。

$ exit

Javaを使用するには、Oracle JDK 1.8.0(推奨)またはCentOSで提供されているOpenJDKの2つのオプションがあります。Oracle JDKを使用するには、Oracleの Java SE Development Kit 8 ダウンロード ページにアクセスし、使用許諾契約に同意して、Linux X64 RPMのリンクをコピーします。

次のコマンドを使用して、ターミナルを介して古いバージョンのOracle JDKをダウンロードすることもできます。

$ wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

次にインストールします。

$ sudo yum localinstall jdk-8u131-linux-x64.rpm

前述のように、代わりにCentOS(yum)経由でインストールすることもできます。 そうするには:

$ sudo yum -y install java-1.8.0-openjdk-devel

サンプルを構築・実行する

$ mkdir ~/gsSample/ 
$ cp /usr/griddb-*/docs/sample/program/Sample1.java ~/gsSample 
$ cd ~/gsSample 
$ export CLASSPATH=${CLASSPATH}:/usr/griddb-4.2.0/bin/gridstore-4.2.0.jar
$ javac Sample1.java 
$ cd .. 
$ java gsSample/Sample1 239.0.0.1 31999 defaultCluster admin admin
Person:  name=name02 status=false count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]

サンプルの引数は次のとおりです。
1. 239.0.0.1 : GridDBサーバのマルチキャストアドレス
2. 31999: GridDBサーバのマルチキャストポート
3. defaultCluster: あなたのクラスター名
4. admin: あなたのユーザ名
5. admin: あなたのパスワード

Python コネクタ

Python3をダウンロード・インストールする

GridDBのPythonクライアントには、CentOSにデフォルトで含まれていないPython 3が必要です。 EPELを使用してPython3.4をインストールできますが、IUSの最新バージョンのPythonを使用することをお勧めします。

$ sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm 
$ sudo yum install -y python35u python35u-pip

C Clientをダウンロード・インストールする

Pythonクライアントには、GridDB C client Github リリースページからダウンロードできるGridDBのCクライアントも必要です。 最新のリリースのリンクをコピーして、ダウンロードして展開します。展開したら、次にライブラリファイルを /usr/lib64にコピーします。

$ wget  \
https://github.com/griddb/c_client/archive/v4.2.0.tar.gz 
$ tar zxvf griddb_c_client-4.2.0-linux.x86_64.tar.gz 
$ cd c_client-4.2.0/ 
$ sudo cp bin/libgridstore.so* /usr/lib64/

PyClientをダウンロード・インストールする

GridDB Python Client’s Github リリースページから、最新のリリースからリンクをコピーしてダウンロードし、展開します。

$ wget https://github.com/griddb/python_client/archive/0.7.6.tar.gz 
$ tar zxvf 0.7.6.tar.gz 
$ cd python_client-0.7.6/

Pythonのincludeディレクトリを正しく指すようにMakefileを編集する必要があります。IUSPythonパッケージの場合は、-I/usr/include/python3.6-I/usr/include/python3.6mに変更してください。最後にmakeでクライアントをビルドします。

$ make

サンプルを実行する

Pythonサンプルを実行するには、GridDB Pythonファイルの横にコピーします。 Javaサンプルをすでに使用している場合は、conInfo = griddb.ContainerInfo("col01",conInfo = griddb.ContainerInfo("pycol01",に変更します。

$ cp sample/sample1.py . 
$ python3 sample1.py  239.0.0.1 31999 defaultCluster admin admin
Person: name=name02 status=False count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]

GridDBを自分のプロジェクトに追加する場合は、Pythonソースファイルが含まれているディレクトリにgriddb_python.pyと_griddb_python.soをコピーします。

One Comment

  1. […] GridDBサーバーをまだ設定していない場合は、クイックスタートに従って設定してください。Node.js用にGridDBを設定する場合は、こちらのブログを使用して設定することができます。NYC Open Dataのウェブサイトで、NYCタクシーのデータの詳細をダウンロードして見ることができます。 […]

Leave a Reply

Your email address will not be published.