3

我从 url 下载了 EC2 服务器上的 Titan 1.0 版

Titan 1.0.0 与 Hadoop 1 - 推荐

然后我解压缩并使用以下命令运行 Titan 服务器:

bin/titan.sh 启动

Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300).... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182).... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

然后我尝试从 Titan 1.0 版本中的 HTTP 请求(在 Titan 0.4 版本中 Rexster 工作正常)但我得到以下错误

不是 WebSocket 握手请求:缺少升级Titan 1.0 HTTP 请求错误

4

1 回答 1

7

使用默认设置,您无法通过 HTTP 连接连接到 Titan v1.0.0。更准确地说,您无法通过 HTTP 连接到 Gremlin Server。

使用 Titan 时,您还使用了Apache TinkerPop 框架中的 Gremlin Server 。Gremlin 服务器接受 WebSocket 连接(默认)并将查询转发到 Titan 服务器。

对于 TinkerPop v3.0.1 附带的 Titan v1.0.0(因此 Gremlin 服务器 v3.0.1),您需要HttpChannelizerconf/gremlin-server/gremlin-server.yaml文件中手动配置:

  channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer

另请参阅:TinkerPop v3.0.1 文档:通过 REST 连接

这将替换默认设置WebSocketChannelizer,并允许您通过 HTTP 向 Gremlin Server 发送查询。当您运行时./bin/titan.sh start,您实际上是在启动 Gremlin Server 以及所有与 Titan 相关的东西(默认设置中的 Titan 实例、Cassandra 和 Elasticsearch)。

如果您必须使用浏览器并且仍希望使用 WebSocket 连接,您可以使用https://github.com/jbmusso/gremlin-javascript,它是 Gremlin Server 的 JavaScript (Node.js/Browser) 客户端。它支持浏览器中的 WebSocket 连接。gremlin-server.yaml使用此设置时,您不必编辑文件中的任何内容。

于 2016-05-17T07:35:12.997 回答