JanusGraph 圖資料庫安裝小記 ——以 JanusGraph 0.3.0 為例

来源:https://www.cnblogs.com/xiaff/archive/2018/08/23/Install_JanusGraph.html
-Advertisement-
Play Games

由於近期項目中有使用圖數據的需求,經過對比,我們選擇嘗試使用 JanusGraph。本篇小記記錄了我們安裝 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch 的過程。 根據官網的介紹,JanusGraph 是一個可擴展的圖資料庫,針對存儲和查詢包含分佈在多... ...


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

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

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) 信任 Docker 的 GPG 公鑰:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

2) 添加軟體倉庫:

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"

3) 最後安裝 Docker-CE

sudo apt-get update
sudo apt-get install docker-ce

4) 添加當前用戶到 docker 用戶組,可以不用 sudo 運行 docker(可選)

sudo groupadd docker
sudo usermod -aG docker $USER

5) 額外的步驟:添加國內的 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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • vscode是一個簡單的開發工具,啟動快,速度快。但是當前1.26版本對多項目支持好像有點問題。命令行有個dotnet sln,但是只能添加新項目,卻沒有創建解決方案的命令。如果強行添加他會提示沒有解決方案文件,莫名其妙!當然可以添加文件夾的方式,在一個項目中看到另一個項目的文件結構,但是這無法等同... ...
  • 突然想起delegate委托是支持+= 和-=操作的,然後研究一下究竟這個是怎麼做到的,好模仿一下。一開始以為是+=的運算符重載,但是在類庫參考中並沒有這個運算符重載,只有!= 和==運算符重載。有點納悶,最終發現,原來+=這些直接就是語法層面的實現,只是針對delegate才有的福利,所以也不存在... ...
  • 1. 安裝 Homebrew2. brew doctor 確認 brew 在正常工作3. brew update 更新包4. brew install mysql 安裝 MySQL​```==> Downloading https://homebrew.bintray.com/bottles/mys... ...
  • 直方圖是表上某個欄位在按照一定百分比和規律採樣後的數據分佈的一種描述,最重要的作用之一就是根據查詢條件,預估符合條件的數據量,為sql執行計劃的生成提供重要的依據在MySQL 8.0之前的版本中,MySQL僅有一個簡單的統計信息卻沒有直方圖,沒有直方圖的統計信息可以說是沒有任何意義的。MySQL 8 ...
  • 1.導入 導入實例 說明: 第一行就是導入文件; 第二行參看語法就會發現有兩個詞:replace 和 ignore 。replace和ignore關鍵詞控制對現有的唯一鍵記錄的重覆的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳過有唯一鍵的現有行的重覆 ...
  • 1)基本語法 變數:val var(可變變數); 數據類型:Byte,Char,Int,Short,Long,String(字元),Float,Double,Boolean(true,flase); 列子: val a = 3; or val a:Int = 3;//不可變,不能重新賦值 var b ...
  • 1.生成keyStore文件 在命令行下執行以下命令: Shell代碼 收藏代碼 其中 -genkey表示生成密鑰 -validity指定證書有效期,這裡是36000天 -alias指定別名,這裡是www.zlex.org -keyalg指定演算法,這裡是RSA -keystore指定存儲位置,這裡是 ...
  • 1. centos 7安裝工作 對於mysql二進位安裝,我這裡在使用一臺新的centos系統。準備好VMware,Xftp-6.0, Xshell-6.0。在VMware中網路使用橋接模式,分配20G硬碟,1個處理器4個內核。進入centos安裝界面後選擇中文,時區上海,配置分區/boot 200 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...