Install GridDB
Download and Install
If you prefer videos:
Head over to the GridDB Github Releases page and download the RPM for the the latest version, as of this blog post, it’s version 4.2.0…
I prefer to copy the link and install with 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
You may also need to change some firewall settings before you can get GridDB up and running. For brevity’s sake, you can simply enter this into your console and make the necessary & permanent changes later:
$ sudo export no_proxy=127.0.0.1
$ sudo service iptables stop
Edit Conf Files
It’s easiest to edit the configuration files of GridDB as the gsadm user which you can switch to with a combination of the sudo and su commands:
$ sudo su - gsadm
$ vim conf/gs_cluster.json
First, gs_cluster.json needs to be edited to set the cluster name, we’ll set it to the default cluster name of “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"
}
}
The edits to gs_node.json are optional, changing concurrency to the number of CPU cores and storeMemoryLimit to the desired value:
{ "dataStore":{ "dbPath":"data", "storeMemoryLimit":"4096MB
", "storeWarmStart":true, "concurrency":4
, "logWriteMode":1, "persistencyMode":"NORMAL", "affinityGroupSize":4 }, ... snip .. }
Set the password for the default admin user (we’ll use the very-insecure password, “admin”) :
$ gs_passwd admin
Password: admin Retype password: admin
Start Service
Since GridDB Community Edition doesn’t include an init script, you’ll need to start GridDB manually, first starting the service and then having it connect to other nodes.
$ gs_startnode
$ gs_joincluster -u admin/admin
Check GridDB Status
With GridDB running, you can check it’s status with 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.2.0-33128 CE" }
We’re now ready to install client software to connect to GridDB.
Java Connector
Download + Install Java
Before downloading, let’s switch back to your original user (not the GridDB Admin user)
$ exit
You have two options for using Java: Oracle JDK 1.8.0 (recommended) or OpenJDK. You will be required to make an account to download the latest version of Oracle JDK, so head to Oracle’s download page and get the installation file Java SE Development Kit 8 Downloads.
You may also opt to download the older version of Oracle JDK via terminal using the following command:
$ wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
Then install:
$ sudo yum localinstall jdk-8u131-linux-x64.rpm
You can also instead choose to install via CentOS(yum) as previously mentioned. To do so:
$ sudo yum -y install java-1.8.0-openjdk-devel
Build + Run Sample
$ 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]
The arguments for the Sample are:
1. 239.0.0.1 : Multicast address of the GridDB Server
2. 31999: Multicast port of the GridDB server.
3. defaultCluster: Your clustername
4. admin: Your username.
5. admin: Your password.
Python Connector
Download + Install Python3
GridDB’s Python Client requires Python3 which isn’t included by default in CentOS. While you can install Python3.4 using EPEL, I prefer using the latest version of Python from IUS.
$ sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum install -y python35u python35u-pip
Download + Install C Client
The Python Client also requires GridDB’s C Client which can be downloaded from the GridDB C client Github Releases page. You can copy the link fo rhte latest release and download and untar it. Once untarred, all thats required is copying the library files to /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/
Download + Install PyClient
From the GridDB Python Client’s Github Releases page copy the link from the latest release and download and untar it.
$ 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/
You’ll need to edit the Makefile to point to the correct Python include directory, in the case of the IUS Python packages, you’ll change -I/usr/include/python3.6
to -I/usr/include/python3.6m
and then build the client with make.
$ make
Run Sample
To run the Python sample, you simply copy it beside the GridDB Python files. If you’ve used the Java sample already, you will want to change the container name, changing conInfo = griddb.ContainerInfo("col01",
to 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]
Now, if you’re adding GridDB to your own project, simply copy griddb_python.py and _griddb_python.so to directory that contains your Python source files.
If you have any questions about the blog, please create a Stack Overflow post here https://stackoverflow.com/questions/ask?tags=griddb .
Make sure that you use the “griddb” tag so our engineers can quickly reply to your questions.