永洪産品目前使用最廣泛的架構部署方式是mpp部署,但是mpp部署有節點角色區分、部署繁瑣,并且需要依賴Zookeeper實現naming雙活。
基于此,從9.2.1版本開始推出了VooltDB,VooltDB是采用Multi-Master多主架構,集群中的每個節點角色對等,從客戶端訪問任意一個節點都能得到相同的效果。
并且這種多主的架構有許多優勢,例如對等的角色使系統架構變得更加簡單,不用再區分naming節點、map節點和reduce節點,天然規避了單點故障的問題,較容易實現多數據中心、異地災備的場景。
同時,VooltDB集群實現了數據自動備份,當一個VooltDB節點宕掉後,不會影響數據的計算結果,增删節點後,也會自動處理數據均衡。
VooltDB部署支持單機部署和集群部署,Windows上隻支持VooltDB單機,Linux/Mac/Arm/Freedsd上不僅支持VooltDB單機,也支持VooltDB集群。當購買了帶有VooltDB權限的license後,管理系統中就會出現VooltDB管理模塊。VooltDB管理模塊包含Zookeeper安裝、節點管理和數據遷移三大部分。
Zookeeper安裝
對于VooltDB單機,不需要部署Zookeeper。如果要使用VooltDB集群,則需要提前部署一套可用的Zookeeper集群,用于實現VooltDB之間副本協調和數據同步。建議部署奇數個Zookeeper節點,并且每個節點部署在不同的服務器上。
在【VooltDB管理-Zookeeper安裝】頁面,點擊“新增”按鈕,添加Zookeeper節點并安裝,如下圖所示:
配置項說明:
【節點IP】填寫想要安裝ZooKeeper節點的服務器IP或域名。
【用戶】安裝ZooKeeper節點的服務器的用戶名。
【密碼】安裝ZooKeeper節點的服務器的用戶密碼。
【安裝路徑】安裝Zookeeper到服務器的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會創建此路徑。
【數據路徑】存放ZooKeeper數據的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會創建此路徑。
【日志路徑】存放Zookeeper事務日志的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會創建此路徑。
【測試連接】填寫完節點IP、用戶名、密碼、安裝路徑、數據路徑和日志路徑之後,可以點擊測試連接按鈕,測試是否可以成功連接服務器,如果填寫信息正确,将顯示測試成功。
【JAVAHOME】安裝ZooKeeper節點的服務器中已安裝的java目錄。如果服務器上已配置了java環境,點擊測試連接後會自動填充java目錄。
【内存】分配給ZooKeeper節點的最大内存空間。
【客戶端端口】對外訪問的端口。
【Leader選取端口】選舉Leader的通信端口。
【數據同步端口】Zookeeper集群内數據同步的通信端口。
【确定】填寫全部信息之後,點擊确定,保存節點信息,并關閉對話框。如果服務器信息填寫錯誤,會在對話框上展示相應的錯誤提示。
【取消】點擊取消按鈕,關閉對話框,不保存已填寫的信息。
添加完所有Zookeeper節點後,點擊“全部安裝”,系統将會自動安裝Zookeeper并且啟動Zookeeper。安裝成功後狀态欄中也會提示安裝成功,如下圖所示:
注意:Zookeeper安裝成功後,不可變更和修改節點信息,隻能先卸載再增加、修改或删除節點。
節點管理
節點管理
通過Zookeeper安裝頁面安裝Zookeeper後,可以點擊Zookeeper配置中的“獲取”自動填充已安裝的Zookeeper信息。如果不是通過頁面安裝的Zookeeper,需要在文本框中輸入全部Zookeeper集群信息,每個Zookeeper節點之間用“,”相連,每個節點的格式為“IP:port”或者“域名:port”。如果是VooltDB單機部署,則不需要填寫Zookeeper配置。如下圖所示:
在【VooltDB管理-節點管理-節點管理】頁面,點擊“新增”按鈕,添加VooltDB節點并安裝,如下圖所示:
配置項說明:
【節點IP】填寫想要安裝的VooltDB節點的服務器IP或域名。
【集群選項】選擇該節點屬于主集群還是備集群。需要購買RemoteBackup權限的license才能使用此功能。未購買此功能時,默認添加主集群。
【用戶】安裝VooltDB節點的服務器的用戶名。
【密碼】安裝VooltDB節點的服務器的用戶密碼。
【安裝路徑】安裝VooltDB節點到服務器的路徑。安裝路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會自動創建該路徑。
【測試連接】填寫完節點IP、用戶名、密碼和安裝路徑之後,可以點擊測試連接按鈕測試是否可以成功連接服務器,如果填寫信息正确,将顯示測試成功。
【内存】分配給VooltDB的最大内存空間。點擊測試連接後将根據當前服務器剩餘的内存自動填寫,也可以根據實際規劃手動修改。如果是集群部署,單個節點會安裝2個實例,内存是均分給兩個實例的。
【許可證】VooltDB節點安裝和運行需要的License,可按照商務流程申請。
【tcp_port】配置VooltDB節點進行tcp通訊的端口。
【interserver_http_port】配置VooltDB節點之間交換數據的端口。
【http_port】配置VooltDB節點進行http通訊的端口。
【确定】填寫完全部信息之後,點擊确定保存節點信息,并關閉對話框,如果服務器信息填寫錯誤,會在對話框上展示相應的錯誤提示。
【取消】點擊取消按鈕,關閉窗口,不保存已填寫的信息。
添加完所有VooltDB節點後,點擊“全部安裝”,系統将會自動安裝VooltDB并且啟動VooltDB。安裝成功後狀态欄中也會提示安裝成功,如下圖所示:
安裝完VooltDB後,可以增加或删除VooltDB節點,然後點擊“變更”按鈕,對集群進行擴容或縮容。擴容或縮容成功後,狀态欄中會提示變更成功,如下圖所示:
節點狀态
對于VooltDB集群,每個節點會安裝兩個實例。安裝完VooltDB後,在節點狀态頁面可以看到已經安裝的各個VooltDB節點的狀态,并且可以對各個實例進行管理,如重啟節點、停止節點、啟動節點,如下圖所示:
集群切換
如果需要使用VooltDB的災備功能,即進行主備集群切換,需要購買RemoteBackup權限的license。購買後,節點管理頁面就會出現集群切換功能,如下圖所示:
添加備集群的方式和前文中添加主集群的方式一樣,隻是在【集群選項】中選擇備集群,最多可以添加兩套備集群。備集群的節點數必須和主集群的節點數一緻。安裝備集群後,主集群上的集市數據會自動備份到備集群上。當工作集群為備集群時,隻能查看數據,不能進行入集市、修改或變更VooltDB集群等操作。
數據遷移
如果之前使用的是MPP集群,想切換到VooltDB,對于已經入集市的數據可以通過數據遷移将其導入到VooltDB中。但數據遷移到VooltDB後,不支持從VooltDB遷移回MPP。數據遷移的方式有兩種,一種是通過數據遷移頁面遷移數據,另一種是通過定制jar 自定義任務遷移數據。如果是同版本從MPP切換到VooltDB,或者以前使用的低版本MPP,新裝了一套高版本VooltDB,需要将低版本MPP的數據遷移到新版VooltDB環境,可以使用數據遷移頁面進行數據遷移。如果當前使用的版本是8.5.*、8.6.*或8.8.*,需要直接升級到9.2.*以上版本使用VooltDB,可以使用定制jar 自定義任務進行數據遷移。
頁面數據遷移
在【VooltDB管理-數據遷移】頁面,會展示MPP中已有集市文件夾的詳細信息,如下圖所示:
頁面各項說明:
【MPP數據集市文件夾】存在于MPP中的集市文件夾名稱。
【遷移版本】文件夾最後一次入MPP的時間。
【狀态】當前文件夾的狀态,可有:未遷移、遷移中、遷移成功、遷移失敗四種。
【操作】可以對當前集市文件夾進行的操作,分别為:開始遷移和停止。
【開始遷移】開始遷移有兩個按鈕,分别為每個集市文件夾後面單獨的開始遷移和頁面最上方的開始遷移。其中點擊單個集市文件夾的開始遷移,隻會對所選的集市文件夾進行遷移操作,如果點擊頁面最上方的開始遷移,則系統會自動依次對所有的集市文件夾進行遷移。
【停止遷移】如果沒有任務在遷移中,頁面最上方的停止遷移按鈕将會置灰顯示。如果當前有遷移任務進行中,按鈕會高亮顯示,點擊後将會停止當前所有遷移操作。
【停止】單個集市文件夾開始遷移後,文件夾後方的開始遷移按鈕将會變成“停止”,點擊停止按鈕後,将會停止遷移當前任務。
可以根據自身需要在此頁面進行數據遷移,遷移任務也可以多次進行。如果遷移失敗或者數據有重新入集市的情況,隻需要針對有變化的集市文件夾再次進行遷移操作即可。
同版本數據遷移
如當前使用的9.2的MPP,需要直接切換成VooltDB。數據遷移步驟如下:
1
根據MPP集群部署規劃VooltDB集群。比如MPP集群是(C、C、N、MR、MR)5個節點,則2個C節點保留,并在其中一個C上按2.1節中的步驟安裝相同MR節點數量的VooltDB節點,則VooltDB集群由(C、C、N、MR、MR)變成了(C、C、VooltDB、VooltDB)。
2
進入9.2MPP集群所有C節點的“調度任務”頁面,停掉每個節點上的作業服務,如下圖所示:
3
确保之前的集群節點(C、C、N、MR、MR)和兩個新的VooltDB節點都啟動。
4
進入【管理系統-VooltDB管理-數據遷移】頁面,點擊頁面右上角的開始遷移按鈕進行遷移。
5
當所有集市文件夾都遷移完成後,停掉MPP集群,在C節點的bi.properties中将cloud.use.vooltdb屬性從false切換成true,重啟C節點,從而切換為VooltDB集群,則可以開始使用VooltDB集群。
低版本數據遷移
如目前使用的8.7的MPP,需要升級到9.2,且9.2已按節點管理中的步驟重新安裝了C和VooltDB節點的集群。數據遷移步驟如下:
1
進入8.7MPP集群所有C節點的“調度任務”頁面,停掉每個節點上的作業服務。
2
數據備份。數據備份的内容和步驟和MPP版本升級一緻,需要注意每個節點的數據都需要備份,文件系統需要備份bihome和Yonghong/cloud目錄,數據庫系統需要先将數據庫内容同步到本地文件系統後,再備份bihome和Yonghong/cloud目錄。
3
替換老集群的jar包。8.7MPP集群的所有節點,停止服務,備份Yonghong/product中原有jar包,然後替換9.2版本的api.jar、product.jar、thirds.jar。
4
将9.2環境的C節點接入8.7環境的MPP集群。先在新安裝的9.2的C節點中,新增或修改bi.propertise和global_bi.properties中的如下配置項:
bi.properties配置:
cloud.use.vooltdb=false(不用VooltDB,切回MPP)
dc.global.path=XXX/Yonghong/bihome/global_bi.properties(XXX為産品安裝目錄,整個目錄需要指向新安裝節點的global_bi.properties文件)
global_bi.properties配置:
dc.node.naming=XXX(XXX為8.7集群環境N節點的IP,如果是Naming雙活,請填寫主N的IP)
dc.io.local=false
然後啟動8.7版本MPP集群,需要逐台節點檢查是否正常啟動,可以在C節點的“監控預警-系統監控概覽”中查看是否每台節點都是alive,如果不是,請檢查沒有alive的節點,确保每台服務器都是alive。
最後啟動9.2新安裝的C節點,查看節點是否成功接入老集群,如果在【管理系統-VooltDB管理-數據遷移】頁面顯示了老集群中的集市文件夾信息,則接入成功。如果沒有數據,請檢查前序步驟是否操作正确。并進入管理系統-VooltDB管理-節點管理-節點狀态,查看VooltDB節點的狀态,确保所有VooltDB節點全部啟動。
5
MPP集市數據遷移到VooltDB。進入9.2新安裝的節點C,打開【管理系統-VooltDB管理-數據遷移】頁面,點擊右上角的“開始遷移”按鈕,所有集市文件狀态均顯示“遷移成功”後,表示遷移完成。
6
使用9.2的VooltDB集群。完成上述步驟後,MPP數據遷移到VooltDB的工作已經完成。此時可以停掉老的集群,修改9.2C節點的bi.properties文件,設置cloud.use.vooltdb=true,重啟服務即可。
定制jar遷移
如當前使用的8.6的MPP(cnmr、cmr),需要升級到9.2.4使用VooltDB。數據遷移步驟如下:
1
先根據2.1的介紹及自身需要部署9.2.4版本的VooltDB(此處以部署C、vooltdb單機為例),然後将8.6 cnmr節點bihome下的資源拷貝到9.2.4版本C節點的同級目錄下(數據庫系統需要将存儲到數據庫的bihome先從數據庫同步到文件系統,再拷貝到9.2.4的bihome下)。如果拷貝了bi.properties文件,需要編輯bi.properties文件,将dc.fs.physical.path=、dc.fs.naming.paths=、dc.fs.sub.path=屬性删除,并添加cloud.use.vooltdb=true屬性。然後進入8.6集群的所有C節點的調度任務,停止調度服務。
2
獲取對應版本的migration-task.jar放到老版本MPP集群所有節點的product路徑下。
3
将9.2.4的C節點bihome下的vooltdb.config文件放到老版本MPP中C節點的bihome下,可以隻放到某個C節點下,重啟服務(此處可以将9.2.4上C節點Yonghong/bihome下的vooltdb.config文件放到8.6的cnmr節點的bihome下)。
4
在8.6放置了vooltdb.config文件的節點新建“自定義任務”類型的作業,操作類中填寫“g5.sched.jobs.MigrateToVooltDBTask”,默認為全量遷移,如果想單獨遷移某個集市文件夾,則點擊參數後的收集按鈕,在參數folder中填寫集市文件夾的路徑,則對該文件夾進行遷移。不支持同時遷移多個文件夾。如下圖所示
5
保存并執行作業,開始進行數據遷移,作業執行完成後,遷移完成。此時可停用MPP集群,使用新的VooltDB集群。
,