spark插入边报错

E1124 18:16:49.376183 25774 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 91
E1124 18:16:49.376152 25775 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 68
E1124 18:16:49.376294 25775 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 93
E1124 18:16:49.376315 25775 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 85
E1124 18:16:49.376255 25774 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 59
E1124 18:16:49.376204 25799 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 12
E1124 18:16:49.376369 25774 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.376381 25799 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 10
E1124 18:16:49.376237 25770 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 87
E1124 18:16:49.376415 25781 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.376433 25770 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 22
E1124 18:16:49.376374 25786 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.376479 25799 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.388586 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 34
E1124 18:16:49.388617 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 24
E1124 18:16:49.388628 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 64
E1124 18:16:49.388654 25780 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.389477 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 65
E1124 18:16:49.389503 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 52
E1124 18:16:49.389513 25780 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 19
E1124 18:16:49.389541 25780 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.394672 25799 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 79
E1124 18:16:49.394701 25799 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 26
E1124 18:16:49.394716 25799 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 16
E1124 18:16:49.394742 25774 QueryInstance.cpp:108] Storage Error: The VID must be a 64-bit integer or a string fitting space vertex id length limit.
E1124 18:16:49.404601 25784 StorageAccessExecutor.h:41] InsertEdgesExecutor failed, error E_INVALID_VID, part 92

我的点已经插入成功了,但插入边的时候就报错,这是日志的报错信息,我有点感觉是数据量过大的问题,我昨天测试的是只是用了一天分区下的一个文件,插入边成功了,今天是将一天的分区全部导入,就一直报这个错,

VID 必须是int 64 或者是String类型

你可以看下你的边中是不是存在一些 srcId或者dstId 值很长, 超出了你的space 设置的fixed_string的长度。

可是我的点已经插入进去了,并且可以查出来,按理说点也应该插不进去啊

我觉得是数据量过大的问题,我只插入一天分区下的一个文件,是可以插入进去的,并且我看了一下我的顶点长度,image,根本没有超过这个长度限制,但是我插入完整的一天就不行

那你把spark-connector 写入时的日志发出来看下,里面有插入失败的语句和错误信息的。

你说的是插入点的时候就已经出现了错误信息??

你不是边插入失败么, 你把插入边的spark-connector日志发出来。

第一张图不就是插入边的报错日志吗?

因为日志信息在运维那里,他发给我的是这些

我让你发的是spark-connector的日志,你第一张是nebula的日志。

spark-connector是spark报错的信息吗?还是他专门有一个存放日志的地方,不好意思,刚使用这东西,有些地方还是不太了解


哥,我问题比较多,我把响应时间加到了20分钟,这是我昨天插入边的时候一天的数据插不进去,只插入一天分区下的一个文件的,spark那边报成功插入,但是这里查不出来,昨天查点的时候也是报这个错,把响应时间加到10分钟就可以了,现在20分钟还是不行??

你们使用nebula-spark-connector时肯定是自己有编写程序然后运行的,一般运行方式就是打包然后通过spark-submit 命令进行任务提交。 你就把 执行spark-submit 后输出的日志发出来。

这是另一个问题。 你写入的数据量应该挺大的,这个查询语句会从storage服务拉取大量数据到graph服务,时间太长导致出现RPC错误了


这个就是,看不出来什么名堂出来,有点信息的就是我圈出来的,正是因为看不出来才找运维的

这个日志没有有用信息,你要看Spark 的executor的日志, 里面会有类似于 failed to write xxx的信息

是这样的,我每天的数据大概是2亿行,没一行大概有5个顶点,所以大概有10亿个点插进去,每一行5个顶点之间两两互联,每一行就有10个边,总共一天有20亿条边,但是我刚刚那说过,插入一天的边数据的时候报给你先在看的那些错误,所以我只插入了一天分区下的一个文件的边数据,spark那边报插入成功,查询边的时候就报这个错误

你这是两个问题。

  1. 第一个问题 前面也说了 nebula服务日志中明确提示vid 无效(这里的vid 是指边上的源点id和目标点id), 具体是哪些数据你可以在nebula-spark-connector的日志中看到,所以需要你贴日志。
  2. 第二个问题 你写入的数据量应该挺大的,这个查询语句会从storage服务拉取大量数据到graph服务,时间太长导致出现RPC错误了。 因为limit 还没有下推到storage层面