- nebula 版本:3.0.1
- 部署方式:docker-compose
- 是否为线上版本:N
- 提交算法包报storaged2连接不上
docker-compose
version: '3.4'
services:
metad0:
image: vesoft/nebula-metad:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=metad0
- --ws_ip=metad0
- --port=9559
- --ws_http_port=19559
- --data_path=/data/meta
- --log_dir=/logs
- --v=0
- --minloglevel=0
healthcheck:
test: ["CMD", "curl", "-sf", "http://metad0:19559/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9559:9559"
- 19559
- 19560
volumes:
- ./data/meta0:/data/meta
- ./logs/meta0:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
metad1:
image: vesoft/nebula-metad:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=metad1
- --ws_ip=metad1
- --port=9559
- --ws_http_port=19559
- --data_path=/data/meta
- --log_dir=/logs
- --v=0
- --minloglevel=0
healthcheck:
test: ["CMD", "curl", "-sf", "http://metad1:19559/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9560:9559"
- 19559
- 19560
volumes:
- ./data/meta1:/data/meta
- ./logs/meta1:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
metad2:
image: vesoft/nebula-metad:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=metad2
- --ws_ip=metad2
- --port=9559
- --ws_http_port=19559
- --data_path=/data/meta
- --log_dir=/logs
- --v=0
- --minloglevel=0
healthcheck:
test: ["CMD", "curl", "-sf", "http://metad2:19559/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9561:9559"
- 19559
- 19560
volumes:
- ./data/meta2:/data/meta
- ./logs/meta2:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
storaged0:
image: vesoft/nebula-storaged:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=storaged0
- --ws_ip=storaged0
- --port=9779
- --ws_http_port=19779
- --data_path=/data/storage
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- metad0
- metad1
- metad2
healthcheck:
test: ["CMD", "curl", "-sf", "http://storaged0:19779/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9779:9779"
- 19779
- 19780
volumes:
- ./data/storage0:/data/storage
- ./logs/storage0:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
storaged1:
image: vesoft/nebula-storaged:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=storaged1
- --ws_ip=storaged1
- --port=9779
- --ws_http_port=19779
- --data_path=/data/storage
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- metad0
- metad1
- metad2
healthcheck:
test: ["CMD", "curl", "-sf", "http://storaged1:19779/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9780:9779"
- 19779
- 19780
volumes:
- ./data/storage1:/data/storage
- ./logs/storage1:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
storaged2:
image: vesoft/nebula-storaged:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --local_ip=storaged2
- --ws_ip=storaged2
- --port=9779
- --ws_http_port=19779
- --data_path=/data/storage
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- metad0
- metad1
- metad2
healthcheck:
test: ["CMD", "curl", "-sf", "http://storaged2:19779/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9781:9779"
- 19779
- 19780
volumes:
- ./data/storage2:/data/storage
- ./logs/storage2:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
graphd:
image: vesoft/nebula-graphd:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --port=9669
- --local_ip=graphd
- --ws_ip=graphd
- --ws_http_port=19669
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- storaged0
- storaged1
- storaged2
healthcheck:
test: ["CMD", "curl", "-sf", "http://graphd:19669/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- "9669:9669"
- 19669
- 19670
volumes:
- ./logs/graph:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
graphd1:
image: vesoft/nebula-graphd:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --port=9669
- --local_ip=graphd1
- --ws_ip=graphd1
- --ws_http_port=19669
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- storaged0
- storaged1
- storaged2
healthcheck:
test: ["CMD", "curl", "-sf", "http://graphd1:19669/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- 9669
- 19669
- 19670
volumes:
- ./logs/graph1:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
graphd2:
image: vesoft/nebula-graphd:v3.0.1
environment:
USER: root
TZ: "${TZ}"
command:
- --meta_server_addrs=metad0:9559,metad1:9559,metad2:9559
- --port=9669
- --local_ip=graphd2
- --ws_ip=graphd2
- --ws_http_port=19669
- --log_dir=/logs
- --v=0
- --minloglevel=0
depends_on:
- storaged0
- storaged1
- storaged2
healthcheck:
test: ["CMD", "curl", "-sf", "http://graphd2:19669/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
ports:
- 9669
- 19669
- 19670
volumes:
- ./logs/graph2:/logs
networks:
- nebula-net
restart: on-failure
cap_add:
- SYS_PTRACE
console:
image: vesoft/nebula-console:v3.0.0
entrypoint: ""
command:
- sh
- -c
- |
sleep 3
depends_on:
- graphd
networks:
- nebula-net
networks:
nebula-net:
服务部署情况
[root@172-1-2-152 nebula-docker-compose]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
nebula-docker-compose_console_1 sh -c sleep 3 Exit 0
nebula-docker-compose_graphd1_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32901->19669/tcp, 0.0.0.0:32900->19670/tcp, 0.0.0.0:32904->9669/tcp
nebula-docker-compose_graphd2_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32905->19669/tcp, 0.0.0.0:32902->19670/tcp, 0.0.0.0:32907->9669/tcp
nebula-docker-compose_graphd_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32906->19669/tcp, 0.0.0.0:32903->19670/tcp, 0.0.0.0:9669->9669/tcp
nebula-docker-compose_metad0_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32891->19559/tcp, 0.0.0.0:32890->19560/tcp, 0.0.0.0:9559->9559/tcp, 9560/tcp
nebula-docker-compose_metad1_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32889->19559/tcp, 0.0.0.0:32888->19560/tcp, 0.0.0.0:9560->9559/tcp, 9560/tcp
nebula-docker-compose_metad2_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32893->19559/tcp, 0.0.0.0:32892->19560/tcp, 0.0.0.0:9561->9559/tcp, 9560/tcp
nebula-docker-compose_storaged0_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32897->19779/tcp, 0.0.0.0:32896->19780/tcp, 9777/tcp, 9778/tcp, 0.0.0.0:9779->9779/tcp, 9780/tcp
nebula-docker-compose_storaged1_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32895->19779/tcp, 0.0.0.0:32894->19780/tcp, 9777/tcp, 9778/tcp, 0.0.0.0:9780->9779/tcp, 9780/tcp
nebula-docker-compose_storaged2_1 /usr/local/nebula/bin/nebu ... Up (healthy) 0.0.0.0:32899->19779/tcp, 0.0.0.0:32898->19780/tcp, 9777/tcp, 9778/tcp, 0.0.0.0:9781->9779/tcp, 9780/tcp
Algorithm配置文件
{
# Spark relation config
spark: {
app: {
name: LPA
# spark.app.partitionNum
partitionNum:100
}
master:local
}
data: {
# data source. optional of nebula,csv,json
source: nebula
# data sink, means the algorithm result will be write into this sink. optional of nebula,csv,text
sink: nebula
# if your algorithm needs weight
hasWeight: false
}
# Nebula Graph relation config
nebula: {
# algo's data source from Nebula. If data.source is nebula, then this nebula.read config can be valid.
read: {
# Nebula metad server address, multiple addresses are split by English comma
metaAddress: "172.1.2.152:9560"
# metaAddress: "172.1.2.152:9559"
# Nebula space
space: test
# Nebula edge types, multiple labels means that data from multiple edges will union together
labels: ["inaccount_trade_inaccount"]
# Nebula edge property name for each edge type, this property will be as weight col for algorithm.
# Make sure the weightCols are corresponding to labels.
weightCols: ["out_account_no"]
}
# algo result sink into Nebula. If data.sink is nebula, then this nebula.write config can be valid.
write:{
# Nebula graphd server address, multiple addresses are split by English comma
graphAddress: "172.1.2.152:9669"
# Nebula metad server address, multiple addresses are split by English comma
metaAddress: "172.1.2.152:9559"
user:root
pswd:nebula
# Nebula space name
space:test
# Nebula tag name, the algorithm result will be write into this tag
tag:pagerank
# algorithm result is insert into new tag or update to original tag. type: insert/update
type:insert
}
}
algorithm: {
# the algorithm that you are going to execute,pick one from [pagerank, louvain, connectedcomponent,
# labelpropagation, shortestpaths, degreestatic, kcore, stronglyconnectedcomponent, trianglecount,
# betweenness, graphtriangleCount, clusteringcoefficient, bfs, hanp, closeness, jaccard, node2vec]
executeAlgo: pagerank
# PageRank parameter
pagerank: {
maxIter: 10
resetProb: 0.15 # default 0.15
}
# Louvain parameter
louvain: {
maxIter: 20
internalIter: 10
tol: 0.5
}
# connected component parameter.
connectedcomponent: {
maxIter: 20
}
# LabelPropagation parameter
labelpropagation: {
maxIter: 20
}
# ShortestPaths parameter
shortestpaths: {
# several vertices to compute the shortest path to all vertices.
landmarks: "1"
}
# Vertex degree statistics parameter
degreestatic: {}
# KCore parameter
kcore:{
maxIter:10
degree:1
}
# Trianglecount parameter
trianglecount:{}
# graphTriangleCount parameter
graphtrianglecount:{}
# Betweenness centrality parameter. maxIter parameter means the max times of iterations.
betweenness:{
maxIter:5
}
# Clustering Coefficient parameter. The type parameter has two choice, local or global
# local type will compute the clustering coefficient for each vertex, and print the average coefficient for graph.
# global type just compute the graph's clustering coefficient.
clusteringcoefficient:{
type: local
}
# ClosenessAlgo parameter
closeness:{}
# BFS parameter
bfs:{
maxIter:5
root:"10"
}
# HanpAlgo parameter
hanp:{
hopAttenuation:0.1
maxIter:10
preference:1.0
}
#Node2vecAlgo parameter
node2vec:{
maxIter: 10,
lr: 0.025,
dataNumPartition: 10,
modelNumPartition: 10,
dim: 10,
window: 3,
walkLength: 5,
numWalks: 3,
p: 1.0,
q: 1.0,
directed: false,
degree: 30,
embSeparate: ",",
modelPath: "hdfs://127.0.0.1:9000/model"
}
# JaccardAlgo parameter
jaccard:{
tol: 1.0
}
}
}
执行算法包提交后报错信息如下
22/06/29 16:26:43 ERROR ScanEdgeResultIterator: get storage client error,
java.util.NoSuchElementException: Unable to activate object
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:400)
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:277)
at com.vesoft.nebula.client.storage.StorageConnPool.getStorageConnection(StorageConnPool.java:43)
at com.vesoft.nebula.client.storage.scan.ScanEdgeResultIterator.lambda$next$0(ScanEdgeResultIterator.java:85)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.UnknownHostException: storaged2
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at com.vesoft.nebula.client.storage.GraphStorageConnection.open(GraphStorageConnection.java:66)
at com.vesoft.nebula.client.storage.StorageConnPoolFactory.activateObject(StorageConnPoolFactory.java:58)
at com.vesoft.nebula.client.storage.StorageConnPoolFactory.activateObject(StorageConnPoolFactory.java:15)
at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:391)
... 8 more
我看到这里并没有指定storaged的地址,这事怎么回事呀