在CentOS 7/Ubuntu 18.04上安装Dgraph
问题:如何在CentOS 7上安装Dgraph ?
,如何在Ubuntu 18.04上安装Dgraph。
Dgraph是一个开放源代码的分布式图形数据库,它是从头开始构建的,用于一组丰富的查询。
Dgraph的特点
分布式:Dgraph将数据分片以水平扩展到数百台服务器。
它旨在最大程度地减少磁盘搜索和网络调用的次数。
快速:Dgraph的构建类似于搜索引擎。
查询分为多个子查询,这些子查询可并发运行以实现低延迟和高吞吐量。
事务:借助分布式ACID事务,我们可以专注于应用程序逻辑,而不必担心数据完整性。
高度可用:Dgraph自动运行同步复制,因此,丢失硬盘或者服务器不会影响服务。
SHARD重新平衡:Dgraph通过自动移动分片来确保服务器之间的数据均匀平衡,从而提高了资源利用率,从而提高了性能。
灵活的架构:快速迭代对于保持应用非常重要。
用户高兴。
随着应用程序设计的发展,适应性强的灵活模式将与我们一起工作。
用户界面:Dgraph提供了一个用户界面,因此我们可以浏览和管理数据,从而更轻松地掌握一切。
Dgraph通过紧密控制数据在磁盘上的放置方式,以减少群集中的磁盘查找和网络调用,自动优化查询性能和吞吐量。
Dgraph支持类似GraphQL的查询语法,并通过GRPC和HTTP以JSON和协议缓冲区进行响应。
在CentOS 7/Ubuntu 18.04上安装Dgraph
在本节中,我们将下载Dgraph二进制文件并配置系统服务单元。
第一步是下载二进制文件。
第1步:在CentOS 7/Ubuntu 18.04上下载Dgraph二进制文件
将最新的Dgraph二进制文件下载到操作系统。
curl https://get.dgraph.io -sSf | bash
询问时,同意Dgraph社区许可的条款。
Do you agree to the terms of the Dgraph Community License? [Y/n] Y Latest release version is v1.0.11. Downloading checksum file for v1.0.11 build. ################################################################## 100.0% Download complete. ......
成功的安装应提供类似于以下的输出。
Download complete. Inflating binaries (password Jan be required). Dgraph binaries v1.0.11 have been installed successfully in /usr/local/bin. Please visit https://docs.dgraph.io/get-started for further instructions on usage.
Dgraph二进制文件将安装在 /usr/local/bin
。
确保此目录位于$PATH中。
$ls /usr/local/bin/dgraph<TAB> dgraph dgraph-ratel
步骤2:创建系统服务单元文件
由于CentOS 7和Ubuntu 18.04都使用systemd初始化系统,因此我们将Dgraph服务配置为使用Systemd来管理其状态。 dgraph
服务:
sudo groupadd --system dgraph sudo useradd --system -d /var/run/dgraph -s /bin/false -g dgraph dgraph
创建所需的目录–用于日志和状态文件。
sudo mkdir -p /var/log/dgraph sudo mkdir -p /var/run/dgraph/{p,w,zw} sudo chown -R dgraph:dgraph /var/{run,log}/dgraph
创建以以下内容开头的系统服务文件 dgraph.service
。
cat <<EOF | sudo tee /etc/systemd/system/dgraph.service [Unit] Description=dgraph.io data server Wants=network.target After=network.target dgraph-zero.service Requires=dgraph-zero.service [Service] Type=simple ExecStart=/usr/local/bin/dgraph alpha --lru_mb 2048 -p /var/run/dgraph/p -w /var/run/dgraph/w StandardOutput=journal StandardError=journal User=dgraph Group=dgraph [Install] WantedBy=multi-user.target EOF
还要添加一个 dgraph-zero.service
。
cat <<EOF | sudo tee /etc/systemd/system/dgraph-zero.service [Unit] Description=dgraph.io zero server Wants=network.target After=network.target [Service] Type=simple ExecStart=/usr/local/bin/dgraph zero --wal /var/run/dgraph/zw StandardOutput=journal StandardError=journal User=dgraph Group=dgraph [Install] WantedBy=multi-user.target RequiredBy=dgraph.service EOF
最后创建 graph-ui.service
。
cat <<EOF | sudo tee /etc/systemd/system/dgraph-ui.service [Unit] Description=dgraph.io UI server Wants=network.target After=network.target [Service] Type=simple ExecStart=/usr/local/bin/dgraph-ratel StandardOutput=journal StandardError=journal User=dgraph Group=dgraph [Install] WantedBy=multi-user.target EOF
接下来,启用并启动 dgraph
服务。
sudo systemctl daemon-reload sudo systemctl enable --now dgraph sudo systemctl enable --now dgraph-ui
检查状态以确认所有服务正在运行。
$systemctl status dgraph dgraph-zero dgraph-ui ● dgraph.service - dgraph.io data server Loaded: loaded (/etc/systemd/system/dgraph.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-02-25 05:27:58 UTC; 1min 3s ago Main PID: 5585 (dgraph) CGroup: /system.slice/dgraph.service └─5585 /usr/local/bin/dgraph alpha --lru_mb 2048 -p /var/run/dgraph/p -w /var/run/dgraph/w ● dgraph-zero.service - dgraph.io zero server Loaded: loaded (/etc/systemd/system/dgraph-zero.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-02-25 05:27:58 UTC; 1min 3s ago Main PID: 5584 (dgraph) CGroup: /system.slice/dgraph-zero.service └─5584 /usr/local/bin/dgraph zero --wal /var/run/dgraph/zw ● dgraph-ui.service - dgraph.io UI server Loaded: loaded (/etc/systemd/system/dgraph-ui.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-02-25 05:28:20 UTC; 41s ago Main PID: 5657 (dgraph-ratel) CGroup: /system.slice/dgraph-ui.service └─5657 /usr/local/bin/dgraph-ratel
在防火墙上允许端口8000和8080。
# CentOS 7 sudo firewall-cmd --add-port={8000,8080}/tcp --permanent # Ubuntu 18.04 sudo ufw allow proto tcp from any to any port 8000,8080
访问Dgraph UI
要访问Dgraph UI,请使用端口8000打开服务器IP或者主机名。
我们应该看到类似以下的界面。
选择要加载的Ratel接口。
在下一页上,输入Dgraph URL,它应该是端口" 8080"。
然后,我们应该获得Dgraph仪表板。