exchange2.5.0生成sst文件导入nebula2.5显示成功、但是查不到数据

使用exchange生成sst文件到hdfs之后 下载 copy到 download目录


执行ingest命令


日志返回成功

查询数据统计对应的tag数量为0

而且download下的sst文件还在

请问是不是哪里操作有问题?

不要乱用分类啊,我给你改成【使用问题】分类了

你的nebula是怎么部署的,单机还是分布式?
你的space是几副本?

rpm部署
分布式 3台 配置 内存90G 磁盘900G 3meta 3graph 3storage
3副本

那你要看下另外两台机器的日志,是否download ingest成功了。

都打了成功的日志
E0823 16:47:25.866986 18137 StorageHttpIngestHandler.cpp:64] SSTFile ingest successfully
E0823 17:02:32.679502 18140 StorageHttpIngestHandler.cpp:64] SSTFile ingest successfully
E0823 17:04:00.902556 18137 StorageHttpIngestHandler.cpp:64] SSTFile ingest successfully
E0823 17:09:03.873229 18140 StorageHttpIngestHandler.cpp:64] SSTFile ingest successfully

download操作成功了么?
你的三台机器都有安装Hadoop吗

都没有hdfs客户端 数据是我从hdfs的机器那边 scp过来的

  1. 那你三台机器的data目录下都有把sst文件scp过去么
  2. 你确认下你的space id是1么, 要保证生成sst时在Exchange中配置的space名 的space id是1.

space id 没问题 是1

需要把数据复制三分 分别复制到 三台机器的 download目录下吗

已解决 我只复制到了一台节点的 download目录下

E0823 18:18:11.861326 109769 StorageHttpIngestHandler.cpp:64] SSTFile ingest successfully
E0823 18:38:22.074672 109770 RocksEngine.cpp:381] Ingest Failed: Corruption: Bad table magic number: expected 9863518390377041911, found 2594686580733638854 in /nebula/data/storage/nebula/1/download/1/1-536.sst
E0823 18:38:22.074741 109770 StorageHttpIngestHandler.cpp:99] SSTFile Ingest Failed: E_UNKNOWN
E0823 18:38:22.074786 109770 StorageHttpIngestHandler.cpp:71] SSTFile ingest failed

现在开始报错了 请问这个是不是因为 sst文件有问题

你生成的文件不对,把你生成sst时的Exchange的配置文件贴出来

{
  # Spark相关配置
  spark: {
    app: {
      name: Nebula Exchange 2.1.0
    }
    driver: {
      cores: 1
      maxResultSize: 1G
    }
    cores {
      max: 128
    }
  }

  # Nebula Graph相关配置
  nebula: {
    address:{
      # 以下为Nebula Graph的Graph服务和所有Meta服务所在机器的IP地址及端口。
      # 如果有多个地址,格式为 "ip1:port","ip2:port","ip3:port"。
      # 不同地址之间以英文逗号 (,) 隔开。
      graph:[]
      meta:[]
    }
    # 填写的账号必须拥有Nebula Graph相应图空间的写数据权限。
    user: root
    pswd: nebula
    # 填写Nebula Graph中需要写入数据的图空间名称。
    space: risk_management

    path:{
            local:"/tmp"
            remote:"/sst/orders"
            hdfs.namenode: "hdfs://hadoop3"
    }

    connection {
      timeout: 30000
      retry: 3
    }
    execution {
      retry: 3
    }
    error: {
      max: 32
      output: /tmp/errors
    }
    rate: {
      limit: 1024
      timeout: 60000
    }
  }
  # 处理点
  tags: [
    # 设置Tag player相关信息。
    {
      # Nebula Graph中对应的Tag名称。
      name: order_sst
      type: {
        # 指定数据源文件格式,设置为hive。
        source: hive
        # 指定如何将点数据导入Nebula Graph:Client或SST。
        sink: sst
      }

     exec: "select concat('o_',order_id) as o_vid from ods.orders where dp='active'"

     fields: []

     nebula.fields: []

      # 指定表中某一列数据为Nebula Graph中点VID的来源。
      # vertex.field的值必须与上述fields中的列名保持一致。
      vertex:{
        field:o_vid
      }

      # 单批次写入 Nebula Graph 的最大数据条数。
      batch: 1024

      # Spark 分区数量
      partition: 24
    }
  ]
}

desc tag order_sst 结果贴一下。 确保你在生成sst之前,/sst/orders目录下不存在其他内容

空结果

会不会因为我的stutio版本低 导致的

v2.5.0 的内核的话,大概是得用 Studio 3.0.0 的,你的版本号是多少

浙ICP备20010487号