集群部署

本节介绍 Nebula Graph 的部署

下载并安装包

目前,Nebula Graph 官方提供 CentOS 7.5CentOS 6.5Ubuntu 1604Ubuntu 1804包,rpm 或 deb 包下载点击此处

image

CentOS 系统:

  1. rpm -ivh nebula-{VERSION}.{SYSTEM_VERSION}.x86_64.rpm

Ubuntu 系统:

  1. dpkg -i nebula-{VERSION}.{SYSTEM_VERSION}.amd64.deb

配置文件默认目录为 /usr/local/nebula/etc,请更改 meta_server_addrs,配置 Meta Server 的地址。

启动多副本 Meta 服务需将多个地址配置到 meta_server_addrs,地址间需使用逗号分隔。

使用 data_path 设置 Meta 的底层存储路径。

启动 Nebula Graph 集群

目前,Nebula Graph 集群由 scripts/services.sh 运维,可使用此脚本 startstoprestart 重启集群。

示例命令如下:

  1. scripts/services.sh <start|stop|restart|status|kill>

metas, storages 和 graphs 包含其自身的 hosts。

连接 Nebula Graph

  1. > bin/nebula -u=user -p=password --addr={graphd IP address} --port={graphd listening port}
  • -u 用来设置用户名称,默认值为 user
  • -p 用来设置密码,用户 user 的密码为 password
  • —addr 为 graphd IP 地址
  • —port 为 graphd 服务端口,默认值为 3699

配置引用

Meta Service 支持如下配置属性:

属性名 默认值 说明
port 45500 Meta daemon 监听端口
reuse_port true 开启 SO_REUSEPORT 选项
data_path “” 根数据目录,不支持多目录
meta_server_addrs “” 一系列由逗号分隔的 IP 地址,IP 数与副本数相等,如果为空,则表明副本数为 1
local_ip “” 指定本地 IP NetworkUtils::getLocalIP.
num_io_threads 16 IO 线程数
meta_http_thread_num 3 meta daemon 的 http 线程数
num_worker_threads 32 worker 数
part_man_type memory memory,meta
pid_file “pids/nebula-metad.pid” 存储进程 ID 的文件
daemonize true 作为 daemon 进程运行
load_config_interval_secs 2 * 60 加载配置间隔
meta_ingest_thread_num 3. Meta daemon的 ingest 线程数

Storage Service 支持如下配置属性:

属性名 默认值 说明
port 44500 Storage daemon 监听端口
reuse_port true 开启 SO_REUSEPORT 选项
data_path “” 根数据目录,多条路径由逗号分隔,对 RocksDB 引擎,一个路径为一个实例
local_ip “” IP 地址和监听端口共同用于标识此服务器
daemonize true 作为 daemon 进程运行
pid_file “pids/nebula-storaged.pid” 存储进程 ID 的文件
meta_server_addrs “” meta server 地址列表,格式为 ip1:port1, ip2:port2, ip3:port3
store_type “nebula” storage daemon 使用的 KVStore 类型,可选类型为 \”nebula\” 和 \”hbase\”
num_io_threads 16 IO 线程数
storage_http_thread_num 3 storage daemon 的 http 线程数
num_worker_threads 32 worker 数
engine_type rocksdb RocksDB, memory …
custom_filter_interval_secs 24 * 3600 触发自定义压缩间隔
num_workers 4 worker 线程数
rocksdb_disable_wal false 禁用 RocksDB 的 WAL
rocksdb_db_options “” DBOptions,每个选项以 : 格式给出,以.分隔
rocksdb_column_family_options “” ColumnFamilyOptions,每个选项以 : 格式给出,以.分隔
rocksdb_block_based_table_options “” BlockBasedTableOptions,每个选项以: 格式给出,以.分隔
batch_size 4 * 1024 单个批处理的默认保留字节
block_cache 4 BlockBasedTable:block_cache : MB
download_thread_num 3 下载线程数
min_vertices_per_bucket 3 一个 bucket 中最小节点数
max_appendlog_batch_size 128 每个 appendLog 批请求的最大 log 数
max_outstanding_requests 1024 outstanding appendLog 请求最大数
raft_rpc_timeout_ms 500 raft 客户端 RPC 超时时长,单位毫秒
accept_log_append_during_pulling false pull snapshot 过程中不接受新 log
raft_heartbeat_interval_secs 5 每次心跳间隔时长,单位秒
max_batch_size 256 一个 batch 中最大 log 数

Graph Service 支持如下配置属性:

属性名 默认值 说明
port 3699 Nebula Graph daemon 监听端口
client_idle_timeout_secs 0 关闭 idle 连接前的时长(单位秒), 0 为无穷大
session_idle_timeout_secs 600 idle sessions 过期时长(单位秒),0 为无穷大
session_reclaim_interval_secs 10 超出指定时间则认为超时
num_netio_threads 0 networking 线程数,0为物理 CPU 核数
num_accept_threads 1 接受进入连接的线程数
num_worker_threads 1 执行用户查询的线程数
reuse_port true 开启 SO_REUSEPORT 选项
listen_backlog 1024 listen socket 的 backlog
listen_netdev “any” 监听的网络服务
pid_file “pids/nebula-graphd.pid” 存储进程 ID 的文件
redirect_stdout true 将 stdout 和 stderr 重定向到单独的文件
stdout_log_file “graphd-stdout.log” stdout 目标文件名
stderr_log_file “graphd-stderr.log” stderr 目标文件名
daemonize true 作为 daemon 进程运行
meta_server_addrs “” meta server 地址列表,格式为 ip1:port1, ip2:port2, ip3:port3

Web Service 支持如下配置属性:

属性名 默认值 说明
ws_http_port 11000 HTTP 协议监听端口
ws_h2_port 11002 HTTP/2 协议监听端口
ws_ip “127.0.0.1” IP/Hostname 绑定地址
ws_threads 4 web service 线程数
ws_meta_http_port 11000 Meta HTTP 协议监听端口
ws_meta_h2_port 11002 Meta HTTP/2 协议监听端口
ws_storage_http_port 12000 Storage HTTP 协议监听端口
ws_storage_h2_port 12002 Storage HTTP/2 协议监听端口

Console 支持如下配置属性:

属性名 默认值 说明
addr “127.0.0.1” Nebula daemon IP 地址
port 0 Nebula daemon 监听端口
u “” 用于身份验证的用户名
p “” 用于身份验证的密码
enable_history false 是否保存历史命令
server_conn_timeout_ms 1000 连接超时时长,单位毫秒

注意: 配置时请确保端口未被防火墙阻拦