exchange2.5.0 生成sst文件spaceid不对

image
新建的space id为25
但是生成sst文件是7和8,spark任务执行没有报错
image

7和8不是spaceId啊

为啥会生成两个文件呢,我按照文档上去下载文件,DOWNLOAD HDFS一直失败


然后想手动把文件放到对应的路径下,发现没有download路径
image
这个是生成的文件
image

这个是配置文件

{
  spark: {
    app: {
      name: Nebula Exchange 2.0
    }

    master:local

    driver: {
      cores: 1
      maxResultSize: 1G
    }

    executor: {
        memory:1G
    }

    cores:{
      max: 16
    }
  }

  nebula: {
    address:{
      graph:["xx.x.xx.xxx:9669"]
      meta:["xx.x.xx.xxx:9559"]
    }
    user: root
    pswd: nebula
    space: qzh_test

    # SST文件相关配置
    path:{
        # 本地临时存放生成的SST文件的目录
        local:"/home/nebula/sst/tmp"

        # SST文件在HDFS的存储路径
        remote:"/nebula/sst"

        # HDFS的NameNode地址
        hdfs.namenode: "hdfs://xx.x.x.xx:8020"
    }

    # 客户端连接参数
    connection {
      # socket连接、执行的超时时间,单位:毫秒。
      timeout: 30000
    }

    error: {
      # 最大失败数,超过后会退出应用程序。
      max: 32
      # 失败的导入作业将记录在输出路径中。
      output: /home/nebula/sst/tmp/errors
    }

    # 使用谷歌的RateLimiter来限制发送到NebulaGraph的请求。
    rate: {
      # RateLimiter的稳定吞吐量。
      limit: 1024

      # 从RateLimiter获取允许的超时时间,单位:毫秒
      timeout: 1000
    }
  }

  tags: [
    # 设置Tag player相关信息。
    {
      # 指定Nebula Graph中定义的Tag名称。
      name: player
      type: {
        # 指定数据源,使用CSV。
        source: csv

        # 指定如何将点数据导入Nebula Graph:Client或SST。
        sink: sst
      }

      # 指定CSV文件的路径。
      # 文件存储在HDFS上,用双引号括起路径,以hdfs://开头,例如"hdfs://ip:port/xx/xx"。
      path: "hdfs://xx.x.x.xx:8020/nebula/csv/part-00000-07584540-e14e-4fff-b607-89c0ef56f96a-c000.csv"

      # 如果CSV文件没有表头,使用[_c0, _c1, _c2, ..., _cn]表示其表头,并将列指示为属性值的源。
      # 如果CSV文件有表头,则使用实际的列名。
      fields: [_c0, _c1]

      # 指定Nebula Graph中定义的属性名称。
      # fields与nebula.fields的顺序必须一一对应。
      nebula.fields: [name, age]

      # 指定一个列作为VID的源。
      # vertex的值必须与上述fields或者csv.fields中的列名保持一致。
      # 目前,Nebula Graph 2.5.0仅支持字符串或整数类型的VID。
      vertex: {
        field:_c0
      }

      # 指定的分隔符。默认值为英文逗号(,)。
      separator: ","

      # 如果CSV文件有表头,请将header设置为true。
      # 如果CSV文件没有表头,请将header设置为false。默认值为false。
      header: false

      # 指定单批次写入Nebula Graph的最大点数量。
      batch: 256

      # 指定Spark分片数量。
      partition: 32
    }
  ]

}

我是参考这个帖子的

  1. 生成两个文件是因为你的数据中只覆盖了两个part。
  2. download失败 是不是指定错space了,我看你日志中space=2, 你上面贴出来的space的id是25.

没,那个是之前用另一个空间测试日志,space是对的
我手动下载文件,放到三台机器对应spaceid的download路径下,然后执行Ingest成功
我看数据已经有了,但是查不出来


我的csv源文件就是:
player01,20
player02,25

三台机器上都有hadoop
download失败还有啥原因呀

你统计有数据说明已经导入成功了,用match(v:player) return v 之前有建立索引么
https://docs.nebula-graph.com.cn/2.5.0/3.ngql-guide/7.general-query-statements/2.match/#opencypher

谢谢 可以了,现在问题就是download失败了

看一下 storage 的日志,得确保 storage 上面有 hadoop 客户端,并且启动服务的时候,加载到 path 的变量

image
配了变量可以执行了。


看日志为啥下载这么多呢?
image
我用exchange只生成了7和8

这里是按所有 part 去下载的,不是按 exchange 生成的 part 去下载。
@darionyaphet 请确认一下对把

sst导入只能新增吗,如果导入文件里数据vid已经存在,可以更新属性吗?
我现在验证好像是不行的

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。

您好,这个问题我们在修复 https://github.com/vesoft-inc/nebula/issues/2722