zoukankan      html  css  js  c++  java
  • pgspider griddb 试用

    前边有构建一个简单的pgspider griddb fdw 的docker 镜像,以下是一个简单的试用

    一些说明

    关于pgspider griddb fdw 的构建目前4.3 有bug,使用的是4.2版本的,同时对于java 链接使用member ip,不是广播地址ip

    环境准备

    • griddb

      自己调整的一些参数

    start_griddb.sh 文件

    #!/bin/bash
    chown gsadm.gridstore /var/lib/gridstore/data
    IP=`grep $HOSTNAME /etc/hosts | awk ' { print $1 }'`
    cat << EOF > /var/lib/gridstore/conf/gs_cluster.json
    {
            "dataStore":{
                    "partitionNum":128,
                    "storeBlockSize":"64KB"
            },
            "cluster":{
                    "clusterName":"defaultCluster",
                    "replicationNum":1,
                    "notificationInterval":"5s",
                    "heartbeatInterval":"5s",
                    "loadbalanceCheckInterval":"180s",
                    "notificationMember": [
                            {
                                    "cluster": {"address":"$IP", "port":10010},
                                    "sync": {"address":"$IP", "port":10020},
                                    "system": {"address":"$IP", "port":10080},
                                    "transaction": {"address":"$IP", "port":10001},
                                    "sql": {"address":"$IP", "port":20001}
                           }
                    ]
            },
            "sync":{
                    "timeoutInterval":"30s"
            }
    }
    EOF
    cat << EOF > /var/lib/gridstore/conf/gs_node.json
    {
        "dataStore":{
            "dbPath":"data",
            "backupPath":"backup",
            "syncTempPath":"sync",
            "storeMemoryLimit":"1024MB",
            "storeWarmStart":false,
            "storeCompressionMode":"NO_COMPRESSION",
            "concurrency":2,
            "logWriteMode":1,
            "persistencyMode":"NORMAL",
            "affinityGroupSize":4,
            "autoExpire":false
        },
        "checkpoint":{
            "checkpointInterval":"60s",
            "checkpointMemoryLimit":"1024MB",
            "useParallelMode":false
        },
        "cluster":{
            "servicePort":10010
        },
        "sync":{
            "servicePort":10020
        },
        "system":{
            "servicePort":10040,
            "eventLogPath":"log"
        },
        "transaction":{
            "servicePort":10001,
            "connectionLimit":5000
        },
        "trace":{
            "default":"LEVEL_ERROR",
            "dataStore":"LEVEL_ERROR",
            "collection":"LEVEL_ERROR",
            "timeSeries":"LEVEL_ERROR",
            "chunkManager":"LEVEL_ERROR",
            "objectManager":"LEVEL_ERROR",
            "checkpointFile":"LEVEL_ERROR",
            "checkpointService":"LEVEL_INFO",
            "logManager":"LEVEL_WARNING",
            "clusterService":"LEVEL_ERROR",
            "syncService":"LEVEL_ERROR",
            "systemService":"LEVEL_INFO",
            "transactionManager":"LEVEL_ERROR",
            "transactionService":"LEVEL_ERROR",
            "transactionTimeout":"LEVEL_WARNING",
            "triggerService":"LEVEL_ERROR",
            "sessionTimeout":"LEVEL_WARNING",
            "replicationTimeout":"LEVEL_WARNING",
            "recoveryManager":"LEVEL_INFO",
            "eventEngine":"LEVEL_WARNING",
            "clusterOperation":"LEVEL_INFO",
            "ioMonitor":"LEVEL_WARNING"
        }
    }
    EOF
    gs_passwd admin -p admin
    gs_startnode
    sleep 5
    while gs_stat -u admin/admin | grep RECOV > /dev/null; do
        echo Waiting for GridDB to be ready.
        sleep 5
    done
    gs_joincluster -n 1 -u admin/admin
    tail -f /var/lib/gridstore/log/gridstore*.log
     
     

    dokerfile

    FROM griddbnet/griddb
    COPY start_griddb.sh /start_griddb.sh
    • griddb java 镜像
      代码在项目目录下,参考链接的github 地址
      dockerfile
     
    FROM openjdk:8u242-jdk-stretch
    WORKDIR /app
    COPY griddb-app.jar /app/griddb-app.jar
    COPY entrypoint.sh /entrypoint.sh
    ENTRYPOINT [ "/entrypoint.sh" ]

    entrypoint.sh

    #!/bin/sh
    MEMBER=$MEMBER_ADDR
    java -jar /app/griddb-app.jar $MEMBER
    • docker-compose 文件
    version: "3"
    services: 
      pgspider-griddb:
        image: dalongrong/pgspider:griddb-4.2
        environment: 
        - "POSTGRES_PASSWORD=dalong"
        ports: 
        - "5432:5432"
      griddb-java:
        build: 
          context: ./
          dockerfile: ./Dockerfile-java
        environment: 
        - "MEMBER_ADDR=griddb:10001"
      griddb:
        build: ./
        volumes: 
        - "./log:/var/lib/gridstore/log"
        ports:
        - "10001:10001"
        - "10010:10010" 
        - "10020:10020" 
        - "10030:10030" 
        - "10040:10040"
        - "10050:10050"
        - "10080:10080"
        - "20001:20001"

    使用

    • 构建镜像
    docker-compose  build
    • 启动griddb 以及pgspider griddb fdw
    docker-compose up -d griddb pgspider-griddb
    • 导入数据

      通过java 应用导入数据

    docker-compose up griddb-java
    • 扩展使用
    CREATE EXTENSION griddb_fdw;
    CREATE SERVER griddb_svr FOREIGN DATA WRAPPER griddb_fdw OPTIONS(notification_member 'griddb:10001',clustername 'defaultCluster');
    CREATE USER MAPPING FOR public SERVER griddb_svr OPTIONS(username 'admin', password 'admin');
    IMPORT FOREIGN SCHEMA griddb_schema FROM SERVER griddb_svr INTO public;
    select * from col01;
    • 效果

    说明

    以上就是对于已经构建好的docker 镜像的简单使用,后边可以好好系统学习下griddb,一个很不错的面向iot 以及时序数据的系统

    参考资料

    https://github.com/griddb/c_client
    https://github.com/pgspider/griddb_fdw
    https://hub.docker.com/repository/docker/dalongrong/pgspider
    https://github.com/rongfengliang/pgspider-griddb-fdw-docker

  • 相关阅读:
    linux基本知识2
    Notification发送通知
    CSDN管理员看过来
    linux 中安装JDK
    断开网线黑客也能盗走你的数据
    1.6.2 多表插入
    【笨木头Lua专栏】基础补充07:协同程序初探
    猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
    mysql innodb插入意向锁
    MongoDB实战指南(七):MongoDB复制集之复制集工作机制
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12273250.html
Copyright © 2011-2022 走看看