Nebula Spark Connector Writer配置化修改用户名和密码报错

  • nebula 版本:1.2.0
  • 部署方式:单机
  • 硬件信息
    • 磁盘:SSD
  • 问题的具体描述:
    通过修改官方代码,让其支持配置化在NebulaBatchWriterUtils类中修改用户名和密码信息,但是传参userName=ccpb_cles_gzpc_test,password=Wedg#SAD@admp&123.,但是报错,报错的日志信息显示:userName=Wedg#SAD@admp&123.,password=Wedg#SAD@admp&123.
代码:
    new NebulaBatchWriterUtils()
      .batchInsert("172.21.2.160:3699","ccpb_cles_gzpc_test", "Wedg#SAD@admp&123.","ccpb_cles_gzpc_test_01", 2000)
      .batchToNebulaVertex(dataFrame, tag, tagId,"hash")

修改官方的com.vesoft.nebula.tools.connector.writer.NebulaBatchWriterUtils这个类的batchInsert方法:
  def batchInsert(address: String,userName:String, password:String,space: String, batch: Int = 2000): NebulaBatchWriterUtils = {
    parameters += (NebulaOptions.HOST_AND_PORTS -> address)
    parameters += (NebulaOptions.DEFAULT_USER_NAME -> userName)
    parameters += (NebulaOptions.DEFAULT_PASSWD -> password)
    parameters += (NebulaOptions.SPACE_NAME     -> space)
    parameters += (NebulaOptions.BATCH          -> batch.toString)
    this
  }

运行报错:

这两个地方,parameters是个map, 要向里面添加对应的k-v对, 应该是下面这样哈:

 parameters += (NebulaOptions.USER_NAME -> userName)
 parameters += (NebulaOptions.PASSWD -> password)

你代码中的NebulaOptions.DEFAULT_USER_NAME 是默认用户名,是value,不是key。

这种方式我改过,还是一样的错误,我俩种方式都试过

第一种传参方式:
parameters += (NebulaOptions.USER_NAME → userName)
parameters += (NebulaOptions.PASSWD → password)
第二种传参方式:
parameters += (NebulaOptions.DEFAULT_USER_NAME → userName)
parameters += (NebulaOptions.DEFAULT_PASSWD → password)
都报错,一样的错误

我用你改的代码测试下,稍等

你其他地方有修改代码么,可以在com.vesoft.nebula.tools.connector.writer.NebulaConnection这个类中的 下面加日志查看 你传进去的user和passwd信息。

graphClient.setUser(nebulaOptions.user)
graphClient.setPassword(nebulaOptions.passwd)

没有修改:


我按照你修改源码的方式修改的,可以获取到正常的参数信息。 你那边可以像我这样加两个日志进去看下在连接NebulaGraph时获取的用户名和密码是多少, 或者你也可以debug加watch查看下。

问题已经解决,应该是我改动了其他代码导致。

感谢nebula的开发人员

1 个赞