JanusGraph 圖數據庫安裝小記 ——以 JanusGraph 0.3.0 為例


由於近期項目中有使用圖數據的需求,經過對比,我們選擇嘗試使用 JanusGraph。本篇小記記錄了我們安裝 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch 的過程。

原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html

本文提綱

  1. JanusGraph 簡介
  2. JanusGraph 的安裝
    • Docker 安裝
    • Cassandra 安裝
    • Elasticsearch 安裝
    • 安裝 JanusGraph
  3. 小結

JanusGraph 簡介

根據官網的介紹,JanusGraph 是一個可擴展的圖數據庫,針對存儲和查詢包含分布在多機群集中的數千億個頂點和邊的圖進行了優化。 JanusGraph是一個事務數據庫,可以支持數千個並發用戶實時執行復雜的圖遍歷。

JanusGraph 架構圖
JanusGraph 支持多種存儲后端:

  • Apache Cassandra®
  • Apache HBase®
  • Google Cloud Bigtable
  • Oracle BerkeleyDB

同時也支持地理搜索、范圍搜索、全文檢索,這些功能借助了以下搜索引擎:

  • ElasticSearch™
  • Apache Solr™
  • Apache Lucene®

JanusGraph 原生支持 Apache TinkerPop™ 圖棧,包括:

  • Gremlin 圖查詢語言
  • Gremlin 圖服務器
  • Gremlin 應用

JanusGraph 的安裝

本次 JanusGraph 的安裝是基於 Ubuntu 18.04 LTS 環境,主要借助 Docker 安裝了存儲后端 Cassandra 和搜索引擎 ElasticSearch。

0. Docker 安裝

考慮到網絡問題,Docker的安裝主要參考了清華鏡像站的介紹:Docker Community Edition 鏡像使用幫助

  1. 安裝依賴
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
  1. 信任 Docker 的 GPG 公鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加軟件倉庫:
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
  1. 最后安裝 Docker-CE
sudo apt-get update
sudo apt-get install docker-ce
  1. 添加當前用戶到 docker 用戶組,可以不用 sudo 運行 docker(可選)
sudo groupadd docker
sudo usermod -aG docker $USER
  1. 額外的步驟:添加國內的 Docker 鏡像加速
    /etc/docker/daemon.json 文件中編輯如下內容:
{
  "registry-mirrors": [
      "https://registry.docker-cn.com"
  ]
}

1. Cassandra 安裝

Cassandra 的安裝參考了官方的Docker庫,此次安裝的版本是3.11.3

docker run --name cassandra-3.11.3 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 -d cassandra:3.11.3

2. Elasticsearch 安裝

Elasticsearch 的安裝參考了官方的Docker庫,此次安裝的版本是5.5.2

docker run --name es-5.5.2 -p 9200:9200 -p 9300:9300 -d elasticsearch:5.5.2

中文分詞插件安裝(可選)

可以參考 IK Analysis for Elasticsearch 的 GitHub 介紹安裝。

首先進入 Elasticsearch 的 Docker 環境,

docker exec -it es-5.5.2 bash

然后執行下面的安裝命令即可。

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip

安裝成功后需要退出當前 Elasticsearch 的 Docker 環境,執行exit即可。
隨后重新啟動 Elasticsearch:

docker restart es-5.5.2

3. 安裝 JanusGraph

JanusGraph 的下載地址在其 Github Releases 頁面上。
具體的安裝與配置參考了官網文檔的介紹
此次選擇下載janusgraph-0.3.0-hadoop2.zip

wget https://github.com/JanusGraph/janusgraph/releases/download/v0.3.0/janusgraph-0.3.0-hadoop2.zip

下載完成后使用unzip解壓,並進入 janusgraph~目錄。

我們需要 JanusGraph 以服務的方式運行,並使用 WebSocket 通信。
首先需要查看`conf/gremlin-server/gremlin-server.yaml'這個配置文件,一會啟動服務時會指定這個配置文件。文件中前幾行是這些內容:

host: 0.0.0.0
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/gremlin-server/janusgraph-cql-es-server.properties
}
  • hostport指定了服務監聽的地址和端口;
  • scriptEvaluationTimeout指單次查詢最長的時間,默認是30s
  • channelizer設置使用WebSocketChannelizer還是HttpChannelizer
  • graphs.graph指向了JanusGraph的具體配置文件conf/gremlin-server/janusgraph-cql-es-server.properties

下面是janusgraph-cql-es-server.properties中的主要配置內容

# 存儲后端
storage.backend=cql
storage.hostname=127.0.0.1
storage.cql.keyspace=janusgraph

# 緩存配置
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.25

# 搜索引擎配置
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
index.search.elasticsearch.client-only=true

配置完成后,就可以啟動Gremlin Server啦!

bin/gremlin-server.sh ./conf/gremlin-server/gremlin-server.yaml

成功啟動后就會顯示在監聽8182端口了:

INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Channel started at port 8182.

小結

到此, JanusGraph 的安裝配置到此就大功告成了!如果需要更詳細地配置,還是建議閱讀官網的文檔。這篇小記僅以流水賬的形式記錄了我們安裝 JanusGraph 的過程,由於我們也是初次接觸圖數據庫庫和 JanusGraph ,可能存在諸多不足和不對的地方,歡迎大家批評指正。
后續,我們還將進一步介紹我們在 JanusGraph 中定義Schema、構建索引以及查詢的相關過程和踩過的坑。

原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM