Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从带有gremlin控制台的docker容器使用Janusgraph(Berkeleyje/Lucern)连接到docker容器_Docker_Janusgraph_Gremlin Server - Fatal编程技术网

Can';t从带有gremlin控制台的docker容器使用Janusgraph(Berkeleyje/Lucern)连接到docker容器

Can';t从带有gremlin控制台的docker容器使用Janusgraph(Berkeleyje/Lucern)连接到docker容器,docker,janusgraph,gremlin-server,Docker,Janusgraph,Gremlin Server,目标:我想建立一个图形数据库,并最终从内置在Nodejs应用程序中的一组静态遍历访问数据 中间目标1:作为一个学习练习,我最初将在本地机器上的docker容器中使用gremlin控制台,而不是使用Nodejs应用程序。-我正在使用docker容器tinkerpop/gremlin控制台:最新版本 中间目标2:在我所在组织的远程服务器上的虚拟机上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器)(我不想要任何模糊的建议)-我正在使用docker

目标:我想建立一个图形数据库,并最终从内置在Nodejs应用程序中的一组静态遍历访问数据

中间目标1:作为一个学习练习,我最初将在本地机器上的docker容器中使用gremlin控制台,而不是使用Nodejs应用程序。-我正在使用docker容器
tinkerpop/gremlin控制台:最新版本

中间目标2:在我所在组织的远程服务器上的虚拟机上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器)(我不想要任何模糊的建议)-我正在使用docker容器
Janusgraph/Janusgraph:latest
v3.4.4

修改了中间目标2:由于连接问题,在本地机器上的docker容器中运行Janusgraph(Berkeleyje/Lucern/gremlin服务器),与运行gremlin控制台的docker容器位于同一位置


步骤:

  • 我用
    docker-pull-janusgraph/janusgraph:latest
  • 我使用
    docker run-it-p 8182:8182 janusgraph/janusgraph:latest/bin/bash
    (也使用imageID)运行图像
  • 从正在运行的容器中的控制台
    /opt/janusgraph/bin/gremlin server.sh
  • 这个回答:(剪了)

    我希望序列化类警告不重要

  • 我用
    docker pull tinkerpop/gremlin console:latest
  • 我用docker run-it-p 8182:8182 tinkerpop/gremlin console:latest/bin/bash运行图像(也使用imageID)
  • (在非同位版本中,我将
    /opt/gremlin console/conf/remote.yaml
    调整为指向服务器主机名处的
    主机
    ,该主机名可从容器解析为其IP)
  • 从运行容器中的控制台
    /opt/janusgraph/bin/gremlin.sh
  • 从返回的gremlin控制台
    远程连接tinkerpop.server conf/remote.yaml
  • 从gremlin控制台
    :远程控制台
    (将所有后续命令切换到远程gremlin服务器)
  • 问题 似乎控制台正在连接到服务器,但当我运行时
    gremlin>:>graph=TinkerGraph.open(conf/gremlin-server/conf/gremlin-server/janusgraph-berkeleyje-server.properties)
    它响应了
    主机没有及时响应-检查服务器状态并再次提交。
    无论我是尝试连接同一位置的还是远程的gremlin服务器,这都是相同的

    现在该怎么办?去哪里看?为什么小精灵这么难

    元问题 我不清楚(
    :>TinkerGraph.open(server.properties)
    是否需要指向控制台本地服务器
    .properties
    文件的路径,或者(我认为更可能是)相对于远程服务器的路径

    我希望文档不那么想当然,并且(对于必须只有有限数量的体系结构模式*)全面地解释所需的一切

    *

    • 服务器和客户端位于一台计算机上,共享资源/网络和c
    • 服务器和客户端在一台机器上进行容器化,因此如何让它们进行对话(通过容器隔离)
    • 远程计算机上的服务器到客户端(有或没有集装箱化)

      • 这是一个适合我的快速版本:

        docker run --name janusgraph-default \
            -e janusgraph.storage.berkeleyje.cache-percentage=80 \
            -e gremlinserver.threadPoolWorker=2 \
            -e gremlinserver.channelizer=org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer \
            -p 8182:8182 \
            janusgraph/janusgraph:latest
        
        我在这里定制了一个channelizer,如果您只需要websocket而不需要Http,就可以避免使用它

        在gremlin控制台中:

        :remote connect tinkerpop.server conf/remote.yaml
        :remote console
        graph
        ==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]
        
        • 确保
          remote.yaml
          指向localhost:8182(来自docker run命令的端口)
        • 第二行
          远程控制台
          仅用于避免每个命令的
          :>

        我相信服务器会在其相对路径中查找属性文件。docker版本将属性文件复制到
        /etc/opt/
        ,如下所述:

        这是一个适用于我的快速版本:

        docker run --name janusgraph-default \
            -e janusgraph.storage.berkeleyje.cache-percentage=80 \
            -e gremlinserver.threadPoolWorker=2 \
            -e gremlinserver.channelizer=org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer \
            -p 8182:8182 \
            janusgraph/janusgraph:latest
        
        我在这里定制了一个channelizer,如果您只需要websocket而不需要Http,就可以避免使用它

        在gremlin控制台中:

        :remote connect tinkerpop.server conf/remote.yaml
        :remote console
        graph
        ==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]
        
        • 确保
          remote.yaml
          指向localhost:8182(来自docker run命令的端口)
        • 第二行
          远程控制台
          仅用于避免每个命令的
          :>

        我相信服务器会在其相对路径中查找属性文件。docker版本将属性文件复制到这里提到的
        /etc/opt/

        忘记提到运行
        graph=TinkerGraph.open(conf/gremlin server/conf/gremlin server/janusgraph berkeleyje server.properties)
        在服务器端不会得到响应,让我怀疑上一个
        :remote connect tinkerpop.server conf/remote.yaml
        命令的成功响应忘记提到运行
        graph=TinkerGraph.open(conf/gremlin server/conf/gremlin server/janusgraph berkeleyje server.properties)
        在服务器端不会得到响应,让我怀疑上一个
        :remote connect tinkerpop.server conf/remote.yaml
        命令的成功响应
        :remote connect tinkerpop.server conf/remote.yaml
        :remote console
        graph
        ==>standardjanusgraph[berkeleyje:/var/lib/janusgraph/data]