nebula 版本:2.0.0
studio 版本:2.0.0
部署方式 :单机
硬件信息
磁盘: 2T SSD
CPU、内存信息:52 vCPU 384G
#park 相关配置
spark: {
app: {
name: Spark Writer
}
driver: {
cores: 16
maxResultSize: 32G
}
cores {
max: 128
}
}
…
batch: 256
partition: 128
请问下是不是更改这些配置就可以提高并发呀
我们升了版本后,和之前差不多数据量的数据导入,且导数据时的配置文件也没有变,但是现在每天的数据导不完了,异常缓慢,请问下,应该怎么处理,是改配置文件,还是有其他的处理我们并不清楚。。现在
为什么你们用 Studio 又用 Exchange?Studio 是用来做可视化,Exchange 导入数据吗?
是的啊 exchange导入数据 studio用来展示 顺带写了下版本
nightly升级到2.0.0是个啥过程??
关于如何提升Exchange的导入速度,论坛有相关的博客可以参考,你可以搜一下。
简单的可以提升性能的几个配置:
- spark partition配置, 即tags和edges中的partition
- batch
- rate.limit
适当提高这几个配置可以提高导入的并发度。 前提是在提交Exchange任务时要分配好executor的数目,尽量保持partition数是executor 总核数的2-3倍。
配置改了 但导数据还是很慢
在导节点的时候,改完配置导数据还是挺快的,但是导边的时候好像无效,速度没有提升,很慢很慢,有大佬能解答下,或者给下建议不。
很慢很慢是有多慢, 导入点的速度和导入边的速度分别是多少?
也把一条点数据的size和一条边数据的size发一下吧
一个点数据和一条边数据都是两三个字段的,都很小,估计小几K
差不多数据量的点20分钟导完,边十多个小时都不行
- 点和边使用的Exchange并发配置是一样的么,包括提交命名。可以分别发一下。
- 你在console中分别执行下insert batch条点 和insert batch条边,看下执行时间。
如果你的batch很大可以稍微处理下,或者去Exchange配置的error.output路径中看下有没有文件,文件内部一行就是一个insert ngql。
你的Exchange配置文件的batch设置的1?
batch是几,一条insert语句中就会有几条数据的,你上面的示例是只插入一条肯定很快
设置的是10000
上面这个两个发一下, batch是10000
{
#park 相关配置
spark: {
app: {
name: Spark Writer
}
driver: {
cores: 16
maxResultSize: 32G
}
cores {
max: 128
}
}
# Nebula Graph 相关配置
nebula: {
address:{
# 以下为 Nebula Graph 的 Graph 服务和 Meta 服务所在机器的 IP 地址及端口
# 如果有多个地址,格式为 "ip1:port","ip2:port","ip3:port"
# 不同地址之间以英文逗号 (,) 隔开
graph:["172.16.113.127:9669"]
meta:["172.16.113.127:34006"]
}
# 填写的账号必须拥有 Nebula Graph 相应图空间的写数据权限
user: user
pswd: password
# 填写 Nebula Graph 中需要写入数据的图空间名称
space: ***Graph
connection {
timeout: 6000
retry: 3
}
execution {
retry: 3
}
error: {
max: 32
output: /tmp/errors
}
rate: {
limit: 1024
timeout: 5000
}
}
#Processing edges
edges:[
{
name: loginUserAndDevice
type: {ss
source: hive
sink: client
}
exec: "select concat(uid,sdi) as id, uid as id_source,sdi as id_dst,final_day as loginTime from antispam.antispam_nlp_uid_sdi_final_sd where day = '${one_day_ago}' and uid is not null and sdi is not null and sdi!=''"
fields: [id,id_source ,id_dst,loginTime]
nebula.fields: [id, id_source,id_dst,loginTime]
source: id_source
target: id_dst
batch: 10000
partition: 128
}
]
}
配置文件已经贴了 大佬帮忙看下这应该才能提高导入的速度
你的batch太大了,设置成2000试下
本来任务平稳导数据,但是导了一段时间后,就没数据进来了 并且存储占比越来越低。。