Tag: 入門

  • GridDBクイックスタート

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