【问题标题】:Issue while connecting gremlin and gephi连接 gremlin 和 gephi 时出现问题
【发布时间】:2016-05-31 10:30:37
【问题描述】:

我正在尝试将远程服务器上的 gremlin 与 gephi 连接。 gremlin 在 Titan-1.0.0 中使用后端作为 cassandra。而且我还配置了连接到服务器

:remote connect tinkerpop.server conf/remote-objects.yaml
==>Connected - ip-10-125-10-127.eu-west-1.compute.internal/10.125.10.127:8182

但是什么时候执行这个,

:> g

我收到以下错误:

10:13:41 WARN  org.apache.tinkerpop.gremlin.driver.MessageSerializer  - Response [PooledUnsafeDirectByteBuf(ridx: 136, widx: 136, cap: 136)] could not be deserialized by     org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0.
10:13:41 ERROR org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler  - Could not process the response - correct the problem and restart the driver.
io.netty.handler.codec.DecoderException: org.apache.tinkerpop.gremlin.driver.ser.SerializationException: java.lang.IndexOutOfBoundsException: Index: 121, Size: 0
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    at org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler.channelRead0(WebSocketClientHandler.java:90)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:182)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.tinkerpop.gremlin.driver.ser.SerializationException: java.lang.IndexOutOfBoundsException: Index: 121, Size: 0
    at org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0.deserializeResponse(GryoMessageSerializerV1d0.java:216)
    at org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinResponseDecoder.decode(WebSocketGremlinResponseDecoder.java:49)
    at org.apache.tinkerpop.gremlin.driver.handler.WebSocketGremlinResponseDecoder.decode(WebSocketGremlinResponseDecoder.java:36)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
    ... 20 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 121, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at org.apache.tinkerpop.shaded.kryo.util.MapReferenceResolver.getReadObject(MapReferenceResolver.java:60)
    at org.apache.tinkerpop.shaded.kryo.Kryo.readReferenceOrNull(Kryo.java:831)
    at org.apache.tinkerpop.shaded.kryo.Kryo.readObjectOrNull(Kryo.java:725)
    at org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0.deserializeResponse(GryoMessageSerializerV1d0.java:199)
    ... 23 more
Index: 121, Size: 0

在打开端口的 webconsole 10.125.10.127:8182 中,我得到了

not a WebSocket handshake request: missing upgrade

【问题讨论】:

  • 我编辑了 gremlin-server.yaml 文件,将 channelizer 更改为 channelizer:com.tinkerpop.gremlin.server.channel.HttpChannelizer 现在我收到此错误,@987654325 @which 无限期运行
  • 我对你想要做什么感到困惑。您问题的标题询问了 gephi,但 gephi 与您的问题有什么关系?看起来您只是想将 Gremlin 控制台连接到托管 Titan 数据库的 Gremlin 服务器,不是吗?
  • 是的!!!我想将图形从 gremlin 发送到 gephi。因此,在执行 :remote connect tinkerpop.server conf/remote-objects.yaml 时,我得到了那个错误。但是这次我在我的网络控制台中得到了 {"message":"no gremlin script provided"} 这是正确的。但是错误无限期地运行。

标签: gremlin


【解决方案1】:

你混淆了一些东西。如果您的主要要求是连接到 Titan 以在 Gephi 中可视化图形,那么最简单的方法就是在 Titan Gremlin 控制台中打开一个 TitanGraph 实例

graph = TitanFactory.open(...)

然后按照此处的说明进行操作:

http://tinkerpop.apache.org/docs/3.0.2-incubating/#gephi-plugin

您不想通过 :remote 连接到 Gremlin 服务器,因为您需要一个本地 Graph 实例才能使用 Gephi。请注意,:remote 不连接到 HttpChannelizer - 这是用于 REST 基础通信,:remote 在需要 WebSocketChannelizer 的 websockets 上工作。

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 2021-03-13
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多