一種支持海量復(fù)雜數(shù)據(jù)關(guān)系運算的數(shù)據(jù)庫—圖數(shù)據(jù)庫部署簡介
1、背景
當前圖數(shù)據(jù)庫的種類也已經(jīng)有很多,本文介紹的是原生類的代表之一的orientdb(另一個代表是neo4j)的部署,以便為后續(xù)的使用做好準備。
2、環(huán)境準備
- 操作系統(tǒng):Centos6.8
- 內(nèi)存: 8G(分布式部署時建議4G及以上,否則需要手動修改JVM配置)
- JDK: 建議jdk8版本(3.0版本要求jdk8)
- 環(huán)境變量:需配置JAVA_HOME、ORIENTDB_HOME (配置文件中有用到)
創(chuàng)建orientdb用戶。
OrientDB安裝包下載:官網(wǎng)地址https://orientdb.com/。
3、單實例部署
(1)解壓數(shù)據(jù)庫安裝包,并授權(quán)
企業(yè)版處理步驟:
社區(qū)版處理步驟:
與企業(yè)版不同的是如果下載的為社區(qū)版需將agent jar下載下來并拷貝至plugins目錄下:
(2)修改bin目錄下orientdb.sh
(3)修改bin目錄下orientdb.service
(4)初始化啟動
首次啟動數(shù)據(jù)庫使用server.sh,并在啟動過程中提示配置root賬號密碼,如首次不采用此方式啟動,則會隨機生成root賬號的密碼。因此單實例啟動時建議用該方式啟動。
(5)文件屬主確認
首次啟動后會在databases目錄下生成OSystem,如果該目錄屬主不是orientdb則需要手動修改為orientdb,否則下次啟動時異常(報沒有權(quán)限操作OSystem目錄的錯誤)
(6)啟動、關(guān)閉服務(wù)(也可以復(fù)制到/etc/init.d目錄下,做成服務(wù))
(7)進入控制臺,進行數(shù)據(jù)庫交互
4、分布式部署
分布式部署前幾步操作同單實例情況(3.1-3.3),但后續(xù)操作不同。
(1)解壓數(shù)據(jù)庫安裝包
如果是下載的為社區(qū)版需將企業(yè)版agent jar包拷貝至plugins目錄下。
(2)修改bin目錄下orientdb.sh
(3)修改bin目錄下orientdb.service
(4)初始化啟動
(5)修改hazelcast.xml文件
配置TCP / IP模式機制,并添加對應(yīng)節(jié)點信息,修改后主要配置信息如下:
其中部分標簽的含義如下:
<group> name :此元素定義集群的名稱。你可以選擇任何你喜歡的東西
<group> password :定義用于加密每個成員發(fā)送的廣播消息加入群集的密碼。在這里選擇一個強大的密碼。
<network> port :標識用于自動發(fā)現(xiàn)節(jié)點的端口。auto-increment屬性指示機制從定義的端口開始,如果該端口正在使用,則繼續(xù)嘗試其他端口。通過將其設(shè)置為false,定義的端口將用于通信,如果端口已在使用中,則節(jié)點發(fā)現(xiàn)將失敗。對于本文,該屬性將被禁用。
<join>multicast enabled :組播元素用于定義IP組播參數(shù)。將不會使用IP多播,因此我們將忽略它們,可以將enabled屬性設(shè)置為false。
<join> tcp-ip :用于定義與TCP / IP集群相關(guān)的參數(shù)。enabled屬性用于啟用它。
<join> <tcp-ip> member :定義集群的每個成員。還有其他方法來指定每個成員,但是我們將堅持指定每個成員的IP地址(每行一個)。
(6)修改orientdb-server-config.xml文件
其中NodeName參數(shù)的值是在第3.4步中配置的節(jié)點名。
(7)修改default-distributed-db-config.json文件
默認配置全部節(jié)點均為主節(jié)點,如配置其中部分節(jié)點為副本,則修改為如下情況。
其中新增replication ,hotAlignment。
autoDeploy :指定是否將數(shù)據(jù)庫部署到集群中尚未擁有的新節(jié)點。
readQuorum :在讀取操作上回復(fù)客戶端之前需要一致的集群節(jié)點的響應(yīng)次數(shù)。將其設(shè)置為“1”將禁用讀取一致性。
writeQuorum :在寫入操作時,在向客戶端發(fā)送回復(fù)之前需要響應(yīng)多少個節(jié)點。默認值為多數(shù) ,它使用(N / 2)+ 1計算 ,其中N是集群中可用主節(jié)點的數(shù)量。在計算大多數(shù)時,不考慮復(fù)制節(jié)點。如果在僅具有兩個主節(jié)點的群集中保留默認值,則如果其中一個節(jié)點關(guān)閉,則法定人數(shù)將永遠不會形成。
executionMode :定義客戶端的執(zhí)行模式 - 同步或異步。默認值允許客戶端決定。
readYourWrites :指定節(jié)點的響應(yīng)是否計數(shù)達到寫入定額。
newNodeStrategy :當新節(jié)點加入集群時會發(fā)生什么。使用默認值,節(jié)點將自動注冊在服務(wù)器列表下。
hotAlignment :指定如果節(jié)點關(guān)閉然后重新聯(lián)機,會發(fā)生什么。如果啟用,則當節(jié)點脫機時,同步消息將保留在分布式隊列中。當它回到在線時,通過輪詢隊列中的所有同步消息來啟動同步階段。
servers :用于指定集群中節(jié)點的角色(主節(jié)點或副本節(jié)點)。默認情況下,使用星號*表示服務(wù)器中的所有節(jié)點都是主節(jié)點。因為我們打算構(gòu)建一個包含兩個主器件和一個副本的集群,所以我們將通過指定每個節(jié)點的名稱和集群中的角色來修改此參數(shù)進行匹配。
(8)啟動各節(jié)點服務(wù)
啟動時,注意啟動順序。啟動的第一個服務(wù)器(即第一個加入集群)成為協(xié)調(diào)服務(wù)器 ,這是分布式操作啟動的地方。如果希望特定服務(wù)器具有此角色,先啟動該角色
所有節(jié)點啟動完畢后,日志中將有如下信息,其中含有主節(jié)點、副本集信息
結(jié)束語:
至此,OrientDB的單節(jié)點及分部署部署均已完成 。