spark connector 读取 nebula, 报 Scan edgeRow failed for java.net.SocketException: Bad file descriptor (Write failed)

  • nebula 版本:2.0.1
  • nebula-spark-connector 2.1.0
  • 部署方式单机
  • 是否为线上版本: N
  • 硬件信息
    • 磁盘 硬盘
    • CPU 16g

spark connector 读取 nebula, 报 java.net.SocketException: Bad file descriptor

代码:

 val edge = spark.read.nebula(config, nebulaReadEdgeConfig).loadEdgesToDF()
 edge.show()

异常信息:

21/08/19 09:15:09 ERROR ScanEdgeResultIterator: Scan edgeRow failed for java.net.SocketException: Bad file descriptor (Write failed)
com.facebook.thrift.transport.TTransportException: java.net.SocketException: Bad file descriptor (Write failed)
	at com.facebook.thrift.transport.TIOStreamTransport.flush(TIOStreamTransport.java:161)
	at com.vesoft.nebula.storage.GraphStorageService$Client.send_scanEdge(GraphStorageService.java:547)
	at com.vesoft.nebula.storage.GraphStorageService$Client.scanEdge(GraphStorageService.java:534)
	at com.vesoft.nebula.client.storage.GraphStorageConnection.scanEdge(GraphStorageConnection.java:52)
	at com.vesoft.nebula.client.storage.scan.ScanEdgeResultIterator.lambda$next$0(ScanEdgeResultIterator.java:92)
	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: java.net.SocketException: Bad file descriptor (Write failed)
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
	at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
	at com.facebook.thrift.transport.TIOStreamTransport.flush(TIOStreamTransport.java:159)
	... 9 more

避免两处作答造成回复资源浪费,珍惜回复者的时间,这个帖子关联到 单机部署 使用默认配置部署,spark connector 使用示例代码 读取nebula,报 ERROR ScanVertexResultIterator: get storage client error 这个帖子里了。以关联到的帖子的回复为准。