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