- nebula 版本:
- 部署方式:Docker:
- Exchange 版本:2.0.0
- 问题的具体描述
使用 Exchange 向 Nebula Graph 中导入 HDFS 上的 CSV 格式数据时报错:
Exception in thread "main" com.facebook.thrift.protocol.TProtocolException: Expected protocol id ffffff82 but got 48
at com.facebook.thrift.protocol.TCompactProtocol.readMessageBegin(TCompactProtocol.java:475)
at com.vesoft.nebula.meta.MetaService$Client.recv_getSpace(MetaService.java:511)
at com.vesoft.nebula.meta.MetaService$Client.getSpace(MetaService.java:488)
at com.vesoft.nebula.client.meta.MetaClient.getSpace(MetaClient.java:131)
at com.vesoft.nebula.client.meta.MetaClient.getTags(MetaClient.java:144)
at com.vesoft.nebula.exchange.MetaProvider.getLabelType(MetaProvider.scala:69)
at com.vesoft.nebula.exchange.utils.NebulaUtils$.getDataSourceFieldType(NebulaUtils.scala:29)
at com.vesoft.nebula.exchange.processor.VerticesProcessor.process(VerticesProcessor.scala:110)
at com.vesoft.nebula.exchange.Exchange$$anonfun$main$2.apply(Exchange.scala:140)
at com.vesoft.nebula.exchange.Exchange$$anonfun$main$2.apply(Exchange.scala:117)
at scala.collection.immutable.List.foreach(List.scala:392)
at com.vesoft.nebula.exchange.Exchange$.main(Exchange.scala:117)
at com.vesoft.nebula.exchange.Exchange.main(Exchange.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:923)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:164)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:187)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:89)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:998)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1008)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
application.conf 配置
{
# Spark 相关配置
spark: {
app: {
name: Spark Writer
}
driver: {
cores: 1
maxResultSize: 1G
}
cores {
max: 16
}
}
# 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: csv_test
connection {
timeout: 3000
retry: 3
}
execution {
retry: 3
}
error: {
max: 32
output: /tmp/errors
}
rate: {
limit: 1024
timeout: 5000
}
}
# 处理标签
tags: [
# 设置标签 user 相关信息
{
name: user
type: {
source: csv
sink: client
}
path: "hdfs://ns....csv"
fields: [_c0, _c1, _c2]
nebula.fields: [vid, user_pin, c_time]
vertex: {
field: _c0,
}
separator: ","
header: false
batch: 256
partition: 1
isImplicit: true
}
]
}
麻烦路过的大佬们帮忙看一下~~~