JanusGraph基礎(chǔ)1:配置

JanusGraph圖形數(shù)據(jù)庫集群由一個或多個JanusGraph實例組成。 要打開JanusGraph實例,必須提供一個配置,該配置指定應(yīng)如何設(shè)置JanusGraph。

JanusGraph配置可以指定JanusGraph使用哪些組件,控制JanusGraph部署的所有可選內(nèi)容,并提供許多調(diào)整選項以使得JanusGraph集群達到最佳性能。

JanusGraph配置至少需要定義一個持久引擎,JanusGraph會將其用作存儲后端。 存儲后端頁面列出了所有可支持的持久引擎以及如何分別配置它們。 如果需要高級圖形查詢支持(例如,全文搜索,地理位置信息搜索或范圍查詢),則必須配置其他索引后端。 有關(guān)詳細信息,請參見索引后端 如果需要考慮查詢性能,則應(yīng)啟用緩存。 緩存配置和調(diào)整在JanusGraph緩存中進行了描述。

配置的栗子??

以下是一些示例配置文件,以演示如何配置最常用的存儲后端,索引系統(tǒng)和性能組件。這僅涵蓋了可用配置選項的一小部分。
參考 配置參考 以了解全部的可選項。

Cassandra+Elasticsearch

將JanusGraph設(shè)置為使用本地運行的Cassandra持久引擎和遠程ES索引系統(tǒng):

storage.backend=cql
storage.hostname=localhost

index.search.backend=elasticsearch
index.search.hostname=100.100.101.1, 100.100.101.2
index.search.elasticsearch.client-only=true

HBase+Caching

將JanusGraph設(shè)置為使用遠程運行的HBase持久引擎,并使用JanusGraph的緩存組件以提高性能。


storage.backend=hbase
storage.hostname=100.100.101.1
storage.port=2181

cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

BerkeleyDB

將JanusGraph設(shè)置為用BerkeleyDB作為嵌入式持久性引擎,并將Elasticsearch用作嵌入式索引系統(tǒng)。

storage.backend=berkeleyje
storage.directory=/tmp/graph

index.search.backend=elasticsearch
index.search.directory=/tmp/searchindex
index.search.elasticsearch.client-only=false
index.search.elasticsearch.local-mode=true

配置參考詳細描述了所有這些配置選項。 JanusGraph發(fā)行版的conf目錄包含其他配置示例。

更多示例

There are several example configuration files in the conf/ directory that can be used to get started with JanusGraph quickly. Paths to these files can be passed to JanusGraphFactory.open(...) as shown below:
conf /目錄中有幾個示例的配置文件,可使用他們快速開始JanusGraph。 這些文件的路徑可以配置到JanusGraphFactory.open(...),如下所示:

// 使用默認的配置文件連接到本地 Cassandra 
graph = JanusGraphFactory.open("conf/janusgraph-cql.properties")
// 使用默認的配置文件連接到本地 HBase
graph = JanusGraphFactory.open("conf/janusgraph-hbase.properties")

使用配置

根據(jù)不同的實例化模式有幾種不同的方式用于配置JanusGraph。

JanusGraphFactory

Gremlin Console

JanusGraph發(fā)行版包含一個命令行工具Gremlin Console,可以用來與JanusGraph進行交互,并且很容易上手。 調(diào)用bin/gremlin.sh(Unix / Linux)或bin/gremlin.bat(Windows)來啟動控制臺,然后使用存儲在可訪問的屬性配置文件中的默認配置打開JanusGraph:

graph = JanusGraphFactory.open('path/to/configuration.properties')

JanusGraph Embedded

我們還可以在基于JVM的用戶應(yīng)用程序中通過調(diào)用JanusGraphFactory類來啟動一個嵌入的JanusGraph圖實例。在這樣的情況下,JanusGraph是這個應(yīng)用程序的一部分,而且這個應(yīng)用程序可以通過公共API接口方便的調(diào)用JanusGraph。

Short Codes

如果先前已經(jīng)配置了JanusGraph圖集群和/或僅需要定義存儲后端,則JanusGraphFactory可以接收以冒號分隔的字符串表示形式,用來傳遞存儲后端名稱和主機名或目錄,如下所示。

graph = JanusGraphFactory.open('cql:localhost')
graph = JanusGraphFactory.open('berkeleyje:/tmp/graph')

JanusGraph Server

JanusGraph本身也可以認為是一組沒有執(zhí)行線程的jar文件。 有兩種連接和使用JanusGraph數(shù)據(jù)庫的基本模式:

  1. 一個程序的可執(zhí)行線程可以通過調(diào)用嵌入的JanusGraph方式來使用JanusGraph。

  2. JanusGraph打包了一個可長期運行的服務(wù)器進程,啟動該進程后,它允許遠程客戶端或運行在單獨程序中的邏輯調(diào)用JanusGraph。 這個長期運行的服務(wù)器進程稱為** JanusGraph Server **。

JanusGraph Server 使用Apache TinkerPopGremlin Server 堆棧來處理客戶端請求。JanusGraph提供了開箱即用的配置,可快速啟動JanusGraph Server,但可以更改配置以提供更多功能。

通過位于JanusGraph發(fā)行版./conf/gremlin-server目錄中的JanusGraph Server yaml配置文件來配置JanusGraph Server。 要使用JanusGraph Server配置一個圖實例(JanusGraph`),JanusGraph Server配置文件需要以下設(shè)置:

...
graphs: {
  graph: conf/janusgraph-berkeleyje.properties
}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
...

graphs這一個條目中定義了‘捆綁物bindings’來明確JanusGraph的配置。在上面的栗子中,把 graph綁定到了conf/janusgraph-berkeleyje.properties這個配置文件上。plugins這個條目啟用了JanusGraph Gremlin Plugin,這樣可以自動導(dǎo)入JanusGraph類,以便可以在遠程提交的腳本中引用它們。

想了解更多關(guān)于JanusGraph Server 的配置和使用方法可參見 JanusGraph Server.

服務(wù)器分配

JanusGraph zip文件包含一個快速啟動服務(wù)器組件,該組件有助于簡化和快速啟動Gremlin Server和JanusGraph。 調(diào)用bin/janusgraph.sh start來啟動Gremlin Server,并使用Cassandra和Elasticsearch做后端。

- 注意事項
為了安全起見, Elasticsearch 和 `janusgraph.sh` 應(yīng)該使用非root賬戶啟動。

全局配置

JanusGraph的配置選項區(qū)分為本地配置選項和全局配置選項。 本地配置選項適用于單個JanusGraph實例。 全局配置選項適用于集群中的所有實例。 更具體地說,JanusGraph為配置選項區(qū)分了以下五個級別:

  • LOCAL: 這些選項僅適用于單個JanusGraph實例,并在初始化JanusGraph實例時提供的配置文件中指定。

  • MASKABLE: 本地配置文件可以為單個JanusGraph實例覆蓋這些配置選項。 如果本地配置文件未指定該選項,則從全局JanusGraph群集配置中讀取其值。

  • GLOBAL: 這些選項始終從集群配置中讀取,不能基于實例進行覆蓋。

  • GLOBAL_OFFLINE: 類似于 GLOBAL, 但是可以更改,更改這些選項需要重新啟動群集,以確保整個群集中的值相同。

  • FIXED: 類似于 GLOBAL, 但是一旦JanusGraph集群初始化,就無法更改該值。

當?shù)谝粋€集群中的JanusGraph實例啟動時,將從提供的本地配置文件中初始化全局配置選項。 隨后,通過JanusGraph的管理API更改全局配置選項。 要訪問管理API,請在打開的JanusGraph實例句柄g上調(diào)用g.getManagementSystem()。 例如,要更改JanusGraph群集上的默認緩存行為可以使用下面的栗子:

mgmt = graph.openManagement()
mgmt.get('cache.db-cache')
// Prints the current config setting 輸出當前配置
mgmt.set('cache.db-cache', true)
// Changes option 修改配置
mgmt.get('cache.db-cache')
// Prints 'true'輸出 
mgmt.commit()
// Changes take effect

修改離線配置

更改配置選項不會影響正在運行的實例,僅會在新啟動的實例上生效。 更改 GLOBAL_OFFLINE 配置選項需要重新啟動群集,以便更改對所有實例立即生效。 要更改 GLOBAL_OFFLINE 選項,請按照以下步驟操作:

  • 只保留一個集群中的實例,其他所有實例全部關(guān)掉
  • 連接到該實例
  • 確認所有事務(wù)都已經(jīng)關(guān)閉
  • 確認不會有新的事務(wù)啟動 (i.e. 集群必須是下線模式)
  • 啟動管理API
  • 修改配置選項
  • 提交配置,該調(diào)用會自動關(guān)閉實例
  • 重啟全部實例

要了解全部配置詳情請參考 配置說明 包括配置選項和選項的配置范圍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容