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をコピーします。

ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb

One Comment

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

Leave a Reply

Your email address will not be published. Required fields are marked *