HugeGraphServer 部署安装
官方文檔鏈接:https://hugegraph.github.io/hugegraph-doc
HugeGraphServer Quick Start
1 概述
HugeGraph-Server 是 HugeGraph 項目的核心部分,包含Core、Backend、API等子模塊。
Core模塊是Tinkerpop接口的實現,Backend模塊用于管理數據存儲,目前支持的后端包括:Memory、Cassandra、ScyllaDB以及RocksDB,API模塊提供HTTP Server,將Client的HTTP請求轉化為對Core的調用。
文檔中會大量出現HugeGraph-Server及HugeGraphServer這兩種寫法,其他組件也類似。這兩種寫法含義上并無大的差異,可以這么區分:HugeGraph-Server表示服務端相關組件代碼,HugeGraphServer表示服務進程。
2 依賴
2.1 安裝JDK-1.8
HugeGraph-Server 基于jdk-1.8開發,代碼用到了較多jdk-1.8中的類和方法,請用戶自行安裝配置。
在往下閱讀之前務必執行java -version命令查看jdk版本
java -version2.2 安裝GCC-4.3.0(GLIBCXX_3.4.10)或更新版本(可選)
如果使用的是RocksDB后端,請務必執行gcc --version命令查看gcc版本;若使用其他后端,則不需要。
gcc --version版本對應關系?
3 部署
有三種方式可以部署HugeGraph-Server組件:
- 方式1:一鍵部署
- 方式2:下載tar包
- 方式3:源碼編譯
3.1 一鍵部署
HugeGraph-Tools提供了一鍵部署的命令行工具,用戶可以使用該工具快速地一鍵下載、解壓、配置并啟動HugeGraphServer和HugeGraphStudio。 當然,還是得先下載HugeGraph-Tools的tar包。
wget https://github.com/hugegraph/hugegraph-tools/releases/download/v${version}/hugegraph-tools-${version}.tar.gz tar -zxvf hugegraph-tools-${version}.tar.gz cd hugegraph-tools-${version}注:${version}為版本號,最新版本號可參考Download頁面,或直接從Download頁面點擊鏈接下載
HugeGraph-Tools 的總入口腳本是bin/hugegraph,用戶可以使用help子命令查看其用法,這里只介紹一鍵部署的命令。
bin/hugegraph deploy -v {hugegraph-version} -p {install-path} [-u {download-path-prefix}]{hugegraph-version}表示要部署的HugeGraphServer及HugeGraphStudio的版本,用戶可查看conf/version-mapping.yaml文件獲取版本信息,{install-path}指定HugeGraphServer及HugeGraphStudio的安裝目錄,{download-path-prefix}可選,指定HugeGraphServer及HugeGraphStudio tar包的下載地址,不提供時使用默認下載地址,比如要啟動 0.6 版本的HugeGraph-Server及HugeGraphStudio將上述命令寫為bin/hugegraph deploy -v 0.6 -p services即可。
3.2 下載tar包
所有版本目錄,我們這里使用 0.10.4?版本
https://github.com/hugegraph/hugegraph/releases wget https://github.com/hugegraph/hugegraph/releases/download/v0.10.4/hugegraph-0.10.4.tar.gz tar -zxvf hugegraph-0.10.4.tar.gz3.3 源碼編譯
下載HugeGraph源代碼
git clone https://github.com/hugegraph/hugegraph.git編譯打包生成tar包
cd hugegraph mvn package -DskipTests執行日志如下:
...... [INFO] Reactor Summary: [INFO] [INFO] hugegraph .......................................... SUCCESS [ 0.003 s] [INFO] hugegraph-core ..................................... SUCCESS [ 15.335 s] [INFO] hugegraph-api ...................................... SUCCESS [ 0.829 s] [INFO] hugegraph-cassandra ................................ SUCCESS [ 1.095 s] [INFO] hugegraph-scylladb ................................. SUCCESS [ 0.313 s] [INFO] hugegraph-rocksdb .................................. SUCCESS [ 0.506 s] [INFO] hugegraph-mysql .................................... SUCCESS [ 0.412 s] [INFO] hugegraph-palo ..................................... SUCCESS [ 0.359 s] [INFO] hugegraph-dist ..................................... SUCCESS [ 7.470 s] [INFO] hugegraph-example .................................. SUCCESS [ 0.403 s] [INFO] hugegraph-test ..................................... SUCCESS [ 1.509 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ......執行成功后,在hugegraph目錄下生成 hugegraph-*.tar.gz 文件,就是編譯生成的tar包。
4 配置
如果需要快速啟動HugeGraph僅用于測試,那么只需要進行少數幾個配置項的修改即可(見下一節)。 詳細的配置介紹請參考配置文檔及配置項介紹
5 啟動
啟動分為"首次啟動"和"非首次啟動",這么區分是因為在第一次啟動前需要初始化后端數據庫,然后啟動服務。 而在人為停掉服務后,或者其他原因需要再次啟動服務時,因為后端數據庫是持久化存在的,直接啟動服務即可。
HugeGraphServer啟動時會連接后端存儲并嘗試檢查后端存儲版本號,如果未初始化后端或者后端已初始化但版本不匹配時(舊版本數據),HugeGraphServer會啟動失敗,并給出錯誤信息。
如果需要外部訪問HugeGraphServer,請修改rest-server.properties的restserver.url配置項 (默認為http://127.0.0.1:8080),修改成機器名或IP地址。
由于各種后端所需的配置(hugegraph.properties)及啟動步驟略有不同,下面逐一對各后端的配置及啟動做介紹。
HugeGraphServer的默認配置只能是本機訪問,可以修改配置,使其能在其他機器訪問。
vim conf/rest-server.propertiesrestserver.url=http://0.0.0.0:8080?
5.1 Memory (建議測試學習時使用)
修改 hugegraph.properties
backend=memory serializer=textMemory后端的數據是保存在內存中無法持久化的,不需要初始化后端,這也是唯一一個不需要初始化的后端。
啟動 server
bin/start-hugegraph.sh Starting HugeGraphServer... Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)....OK提示的 url 與 rest-server.properties 中配置的 restserver.url 一致
5.2?HBase
用戶需自行安裝 HBase,要求版本 2.0 以上,下載地址
修改 hugegraph.properties
backend=hbase serializer=hbase# hbase backend config hbase.hosts=localhost hbase.port=2181初始化數據庫(僅第一次啟動時需要)
cd hugegraph-${version} bin/init-store.sh查看日志,發現會在hbase創建一些表
2020-01-08 14:23:37 8612 [main] [INFO ] com.baidu.hugegraph.cmd.InitStore [] - Init graph with config file: conf/hugegraph.properties 2020-01-08 14:23:37 8697 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Opening backend store 'hbase' for graph 'hugegraph' 2020-01-08 14:23:37 8944 [main] [WARN ] org.apache.hadoop.util.NativeCodeLoader [] - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 2020-01-08 14:23:37 9285 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Connect 0x38aa816f to 192.168.2.116:2181 with session timeout=90000ms, retries 3, retry interval 1000ms, keepAlive=60000ms 2020-01-08 14:23:38 10101 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Connect 0x2c7b5824 to 192.168.2.116:2181 with session timeout=90000ms, retries 3, retry interval 1000ms, keepAlive=60000ms 2020-01-08 14:23:39 11019 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Connect 0x6bb2d00b to 192.168.2.116:2181 with session timeout=90000ms, retries 3, retry interval 1000ms, keepAlive=60000ms 2020-01-08 14:23:41 12754 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_di completed 2020-01-08 14:23:41 13472 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_ie completed 2020-01-08 14:23:43 14700 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_vi completed 2020-01-08 14:23:43 15414 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_hi completed 2020-01-08 14:23:44 16127 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_li completed 2020-01-08 14:23:45 16852 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_ui completed 2020-01-08 14:23:46 17566 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_v completed 2020-01-08 14:23:46 18278 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_si completed 2020-01-08 14:23:47 18990 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_ii completed 2020-01-08 14:23:48 20205 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_oe completed 2020-01-08 14:23:49 20917 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_fi completed 2020-01-08 14:23:50 21631 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_ei completed 2020-01-08 14:23:51 22842 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:s_ai completed 2020-01-08 14:23:52 23783 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_di completed 2020-01-08 14:23:53 25071 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_ie completed 2020-01-08 14:23:54 25784 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_vi completed 2020-01-08 14:23:54 26497 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_hi completed 2020-01-08 14:23:55 27211 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_li completed 2020-01-08 14:23:56 27923 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_ui completed 2020-01-08 14:23:57 28638 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_v completed 2020-01-08 14:23:58 29850 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_si completed 2020-01-08 14:23:59 30584 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_ii completed 2020-01-08 14:23:59 31299 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_oe completed 2020-01-08 14:24:01 32567 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_fi completed 2020-01-08 14:24:09 41383 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_ei completed 2020-01-08 14:24:10 42187 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:g_ai completed 2020-01-08 14:24:11 43427 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:vl completed 2020-01-08 14:24:12 44156 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:el completed 2020-01-08 14:24:13 44923 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:m_si completed 2020-01-08 14:24:14 46156 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:il completed 2020-01-08 14:24:15 47533 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:pk completed 2020-01-08 14:24:16 48291 [main] [INFO ] org.apache.hadoop.hbase.client.HBaseAdmin [] - Operation: CREATE, Table Name: hugegraph:c completed 2020-01-08 14:24:18 50524 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Graph 'hugegraph' has been initialized 2020-01-08 14:24:18 50524 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Close graph hugegraph[hugegraph] 2020-01-08 14:24:18 50529 [main] [INFO ] org.apache.hadoop.hbase.client.ConnectionImplementation [] - Closing master protocol: MasterService 2020-01-08 14:24:18 50529 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Close zookeeper connection 0x6bb2d00b to 192.168.2.116:2181 2020-01-08 14:24:18 50540 [main] [INFO ] org.apache.hadoop.hbase.client.ConnectionImplementation [] - Closing master protocol: MasterService 2020-01-08 14:24:18 50540 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Close zookeeper connection 0x2c7b5824 to 192.168.2.116:2181 2020-01-08 14:24:18 50540 [main] [INFO ] org.apache.hadoop.hbase.client.ConnectionImplementation [] - Closing master protocol: MasterService 2020-01-08 14:24:18 50544 [main] [INFO ] org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient [] - Close zookeeper connection 0x38aa816f to 192.168.2.116:2181 2020-01-08 14:24:19 50606 [Thread-1] [INFO ] com.baidu.hugegraph.HugeGraph [] - HugeGraph is shutting down?
啟動server
bin/start-hugegraph.sh Starting HugeGraphServer... Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)....OK6 訪問Server
6.1 服務啟動狀態校驗
jps查看服務進程
jps 6475 HugeGraphServercurl請求RestfulAPI
echo `curl -o /dev/null -s -w %{http_code} "http://localhost:8080/graphs/hugegraph/graph/vertices"`返回結果200,代表server啟動正常
7 停止Server
$cd hugegraph-${version} $bin/stop-hugegraph.sh?
異常
1.啟動之前未進行初始化操作,第一次啟動需要先
bin/init-store.sh?再執行
bin/start-hugegraph.sh?異常內容
2020-01-08 14:20:50 13629 [main] [ERROR] com.baidu.hugegraph.dist.HugeGraphServer [] - HugeRestServer start error: com.baidu.hugegraph.backend.BackendException: The backend store of 'hugegraph' has not been initializedat com.baidu.hugegraph.core.GraphManager.checkBackendVersionOrExit(GraphManager.java:206) ~[hugegraph-api-0.10.4.jar:0.48.0.0]at com.baidu.hugegraph.core.GraphManager.<init>(GraphManager.java:76) ~[hugegraph-api-0.10.4.jar:0.48.0.0]at com.baidu.hugegraph.server.ApplicationConfig$GraphManagerFactory$1.onEvent(ApplicationConfig.java:108) ~[hugegraph-api-0.10.4.jar:0.48.0.0]at org.glassfish.jersey.server.internal.monitoring.CompositeApplicationEventListener.onEvent(CompositeApplicationEventListener.java:74) ~[jersey-server-2.25.1.jar:?]at org.glassfish.jersey.server.internal.monitoring.MonitoringContainerListener.onStartup(MonitoringContainerListener.java:81) ~[jersey-server-2.25.1.jar:?]at org.glassfish.jersey.server.ApplicationHandler.onStartup(ApplicationHandler.java:1180) ~[jersey-server-2.25.1.jar:?]at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.start(GrizzlyHttpContainer.java:357) ~[jersey-container-grizzly2-http-2.25.1.jar:?]at org.glassfish.grizzly.http.server.HttpHandlerChain.start(HttpHandlerChain.java:422) ~[grizzly-http-server-2.3.28.jar:2.3.28]at org.glassfish.grizzly.http.server.HttpServer.setupHttpHandler(HttpServer.java:314) ~[grizzly-http-server-2.3.28.jar:2.3.28]at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:290) ~[grizzly-http-server-2.3.28.jar:2.3.28]at com.baidu.hugegraph.server.RestServer.start(RestServer.java:62) ~[hugegraph-api-0.10.4.jar:0.48.0.0]at com.baidu.hugegraph.server.RestServer.start(RestServer.java:113) ~[hugegraph-api-0.10.4.jar:0.48.0.0]at com.baidu.hugegraph.dist.HugeRestServer.start(HugeRestServer.java:58) ~[hugegraph-dist-0.10.4.jar:?]at com.baidu.hugegraph.dist.HugeGraphServer.<init>(HugeGraphServer.java:55) [hugegraph-dist-0.10.4.jar:?]at com.baidu.hugegraph.dist.HugeGraphServer.main(HugeGraphServer.java:100) [hugegraph-dist-0.10.4.jar:?] 2020-01-08 14:20:50 13645 [main] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Shutting down OpProcessor[] 2020-01-08 14:20:50 13645 [main] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Shutting down OpProcessor[session] 2020-01-08 14:20:50 13646 [main] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Shutting down OpProcessor[traversal] 2020-01-08 14:20:50 13646 [main] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Shutting down thread pools. 2020-01-08 14:20:50 13652 [gremlin-server-stop] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Executing shutdown LifeCycleHook 2020-01-08 14:20:50 13652 [gremlin-server-stop] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Executed once at shutdown of Gremlin Server. 2020-01-08 14:20:52 15854 [gremlin-server-stop] [INFO ] com.baidu.hugegraph.HugeGraph [] - Close graph hugegraph[hugegraph] 2020-01-08 14:20:52 15862 [gremlin-server-stop] [WARN ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Exception while closing Graph instance [hugegraph] java.lang.IllegalStateException: Ensure tx closed in all threads when closing graph 'hugegraph'at com.google.common.base.Preconditions.checkState(Preconditions.java:199) ~[guava-19.0.jar:?]at com.baidu.hugegraph.util.E.checkState(E.java:68) ~[hugegraph-common-1.6.16.jar:1.6.16.0]at com.baidu.hugegraph.HugeGraph.close(HugeGraph.java:503) ~[hugegraph-core-0.10.4.jar:0.10.4.0]at org.apache.tinkerpop.gremlin.server.GremlinServer.lambda$null$7(GremlinServer.java:298) ~[gremlin-server-3.4.3.jar:3.4.3]at java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4649) ~[?:1.8.0_121]at org.apache.tinkerpop.gremlin.server.GremlinServer.lambda$stop$8(GremlinServer.java:295) ~[gremlin-server-3.4.3.jar:3.4.3]at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121] 2020-01-08 14:20:52 15863 [gremlin-server-stop] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Closed Graph instance [hugegraph] 2020-01-08 14:20:52 15864 [gremlin-server-stop] [INFO ] org.apache.tinkerpop.gremlin.server.GremlinServer [] - Gremlin Server - shutdown complete Exception in thread "main" com.baidu.hugegraph.backend.BackendException: The backend store of 'hugegraph' has not been initializedat com.baidu.hugegraph.core.GraphManager.checkBackendVersionOrExit(GraphManager.java:206)at com.baidu.hugegraph.core.GraphManager.<init>(GraphManager.java:76)at com.baidu.hugegraph.server.ApplicationConfig$GraphManagerFactory$1.onEvent(ApplicationConfig.java:108)at org.glassfish.jersey.server.internal.monitoring.CompositeApplicationEventListener.onEvent(CompositeApplicationEventListener.java:74)at org.glassfish.jersey.server.internal.monitoring.MonitoringContainerListener.onStartup(MonitoringContainerListener.java:81)at org.glassfish.jersey.server.ApplicationHandler.onStartup(ApplicationHandler.java:1180)at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.start(GrizzlyHttpContainer.java:357)at org.glassfish.grizzly.http.server.HttpHandlerChain.start(HttpHandlerChain.java:422)at org.glassfish.grizzly.http.server.HttpServer.setupHttpHandler(HttpServer.java:314)at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:290)at com.baidu.hugegraph.server.RestServer.start(RestServer.java:62)at com.baidu.hugegraph.server.RestServer.start(RestServer.java:113)at com.baidu.hugegraph.dist.HugeRestServer.start(HugeRestServer.java:58)at com.baidu.hugegraph.dist.HugeGraphServer.<init>(HugeGraphServer.java:55)at com.baidu.hugegraph.dist.HugeGraphServer.main(HugeGraphServer.java:100)?
總結
以上是生活随笔為你收集整理的HugeGraphServer 部署安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cude的__ldg使用
- 下一篇: Apache Kylin从入门到精通