你代码中端口号9779写错了,要用metad的端口
一般报错信息为 method name not found 就是端口号写错,服务连接错误。帖子
改成metad端口后,报错
ERROR [pool-1-thread-1] - get storage client error,
java.util.NoSuchElementException: Unable to activate object
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:400)
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:277)
at com.vesoft.nebula.client.storage.StorageConnPool.getStorageConnection(StorageConnPool.java:42)
at com.vesoft.nebula.client.storage.scan.ScanVertexResultIterator.lambda$next$0(ScanVertexResultIterator.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.facebook.thrift.transport.TTransportException: java.net.ConnectException: Connection refused (Connection refused)
at com.facebook.thrift.transport.TSocket.open(TSocket.java:204)
at com.vesoft.nebula.client.storage.GraphStorageConnection.open(GraphStorageConnection.java:40)
at com.vesoft.nebula.client.storage.StorageConnPoolFactory.activateObject(StorageConnPoolFactory.java:59)
at com.vesoft.nebula.client.storage.StorageConnPoolFactory.activateObject(StorageConnPoolFactory.java:16)
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:391)
... 8 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
at java.net.Socket.connect(Socket.java:606)
at com.facebook.thrift.transport.TSocket.open(TSocket.java:199)
... 12 more
ERROR [main] - scan error,
com.vesoft.nebula.client.meta.exception.ExecuteFailedException: Execute failed: no parts succeed, error message: Unable to activate object
at com.vesoft.nebula.client.storage.scan.ScanResultIterator.throwExceptions(ScanResultIterator.java:99)
at com.vesoft.nebula.client.storage.scan.ScanVertexResultIterator.next(ScanVertexResultIterator.java:142)
at com.vesoft.nebula.examples.StorageClientExample.scanVertex(StorageClientExample.java:54)
at com.vesoft.nebula.examples.StorageClientExample.main(StorageClientExample.java:36)
Process finished with exit code 1
Nebula 查询
(root@nebula) [(none)]> show hosts
+-------------+------+----------+--------------+---------------------+------------------------+
| Host | Port | Status | Leader count | Leader distribution | Partition distribution |
+-------------+------+----------+--------------+---------------------+------------------------+
| "127.0.0.1" | 9779 | "ONLINE" | 110 | "nba:10, test:100" | "nba:10, test:100" |
+-------------+------+----------+--------------+---------------------+------------------------+
| "Total" | | | 110 | "nba:10, test:100" | "nba:10, test:100" |
+-------------+------+----------+--------------+---------------------+------------------------+
Got 2 rows (time spent 1047/35032 us)
Tue, 02 Mar 2021 06:47:47 UTC
(root@nebula) [(none)]> use test
Execution succeeded (time spent 875/28327 us)
Tue, 02 Mar 2021 08:19:12 UTC
(root@nebula) [test]> show tags
+----------+
| Name |
+----------+
| "person" |
+----------+
Got 1 rows (time spent 866/28583 us)
Tue, 02 Mar 2021 08:19:15 UTC
(root@nebula) [test]>
是不是java client 不支持 2.0-rc1的版本?
rc1后期的Nebula服务,有数据结构和接口参数类型的变动,master分支中的client与当前最新的rc1的服务是匹配的,与rc1的rpm包是不兼容的(因为rpm是之前发布的)。
我看java-client v2.0.0-rc分支中,是对应你安装的Nebula服务的。你确认下连接的Nebula 服务的版本
Nebula版本
nebula-graphd version 2.0.0-rc1, Git: 5713b46, Build Time: Jan 6 2021 15:31:08
This source code is licensed under Apache 2.0 License, attached with Common Clause Condition 1.0.
Java Client版本
2.0.0-rc1.20210129
你用java的graph client执行下fetch prop on 语句看下结果吧。可以直接在examples中的GraphClientExample中增加执行语句:“fetch prop on tag id”
执行正常,无报错
console 执行结果
(root@nebula) [test]> fetch prop on person 'Bob'
+----------+-------------+------------+
| VertexID | person.name | person.age |
+----------+-------------+------------+
| "Bob" | "Bob" | 10 |
+----------+-------------+------------+
Got 1 rows (time spent 4250/4962 us)
Wed, 03 Mar 2021 02:04:56 UTC
你的问题跟这个帖子是一样的,是服务端和客户端版本不一致导致的。 但看你使用的版本是一致的,我们这边还需要部署下跟你一样的环境看能否复现。
请帮忙试一下,多谢
在下面这种配置下复现了:
- Nebula各项服务中的addrs 配置的ip是127.0.0.1
问题原因:
java client所连接的Storaged服务的地址是通过metad服务返回的,如果你配置的是127.0.0.1,那么metad返回给你的storaged服务地址就是127.0.0.1:9779。
你的服务是部署在阿里云机器上的,你是无法访问这个地址的。
解决方法:
修改nebula各项服务的ip信息,不要用127.0.0.1
@nicole 各项服务的具体配置是在什么位置?
我看了配置文件,这些配置虽然存在,但都是注释掉的
还是说Nebula默认是127.0.0.1,配置的话要打开注释,改成真实IP?
测试更新上述配置IP后,Nebula无法启动
nebula-metad.conf配置文件
nebula配置文件里 # 开头的是注释, – 不代表注释.
应该得重新弄, 改了配置之后, 之前storage 再 meta 里保存的好多信息就都废了.
这个是怎么解决的呀
你参考下上面 Nicole 和 Liuyu 说的方法,如果不行的话,你可以重新开一个帖子来讲下你遇到的具体问题哈,因为这个原帖是 3 个月之前的帖子,为了避免打扰原帖所有人(他会收到通知),这个帖子先关闭了