spark connector 使用报错

提问参考模版:

  • nebula 版本:1.x

  • spark connector 版本:1.1.0

  • 部署方式 : Docker:

  • 是否为线上版本:Y

  • 使用了spark-connector 导出数据, 报错信息如下

  • 有看到前面的贴说是meta端口 配置的问题,这边meta 配置应该是对的,因为schema 的信息已经正确读取出来了

  • 运行的就是简单的demo 代码

求解答

你是docker部署的,执行下show hosts 看下storaged的地址吧。 你可以在执行spark-connector的机器上 telnet storaged_host port 看下能不能正常访问。

spark-connector 的机器上访问storaged 的确实有问题,我修复后看看可不可以,谢谢的!

再请教个问题,网络问题修复后,执行后被一直卡住在这个地方
一直没有返回,然后我去storaged 上看了下log, 发现收到了很多scan 的请求,但是limit都以0,一直在执行scan 数据量为0 查询。

请问下,这是什么原因导致的?是因为上面使用的代码有什么问题吗?

应该是服务端和客户端版本不兼容,你发一下nebula的详细版本吧,我确认下是否是接口中的limit参数类型有差异。

客户端的版本是1.1.0
nebula 版本是1.0的,后面有对scan 接口进行了一些定制和修改,目前的接口如下:

是因为修改后有什么不兼容的地方吗?

你可以定位下Spark-connector中 storagedClient构造的ScanVertexRequest中的limit值,对比下Nebula Storaged 收到的ScanVertexRequest中的limit值。 如果接口参数及参数数据类型有修改,需要更新thrift。

对scan接口修改后更新thrift:

  1. 更新thrift:对nebula代码编译结束后 会在nebula/build/src/interface/目录下生成各个client的thrift代码。
  2. clone java client代码,将第一步生成的gen-java中的com.vesoft.nebula包替换 java clien中的client/src/main/generated目录下的包。
  3. mvn clean install -Dgpg.skip -Dmaven.javadoc.skip=true -Dmaven.test.skip=true 打包安装新的java client。
  4. 重新执行spark-connector。

解决了,非常感谢,确实是因为这个问题

浙ICP备20010487号