在CentOS 7/Ubuntu 18.04上安装Dgraph

时间:2020-02-23 14:31:09  来源:igfitidea点击:

问题:如何在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仪表板。