天天看點

幹貨丨VooltDB部署與資料遷移

永洪産品目前使用最廣泛的架構部署方式是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節點并安裝,如下圖所示:

幹貨丨VooltDB部署與資料遷移

配置項說明:

【節點IP】填寫想要安裝ZooKeeper節點的伺服器IP或域名。

【使用者】安裝ZooKeeper節點的伺服器的使用者名。

【密碼】安裝ZooKeeper節點的伺服器的使用者密碼。

【安裝路徑】安裝Zookeeper到伺服器的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會建立此路徑。

【資料路徑】存放ZooKeeper資料的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會建立此路徑。

【日志路徑】存放Zookeeper事務日志的路徑。路徑不允許包含空格,如果路徑已存在,則必須為空目錄。如果不存在,會建立此路徑。

【測試連接配接】填寫完節點IP、使用者名、密碼、安裝路徑、資料路徑和日志路徑之後,可以點選測試連接配接按鈕,測試是否可以成功連接配接伺服器,如果填寫資訊正确,将顯示測試成功。

【JAVAHOME】安裝ZooKeeper節點的伺服器中已安裝的java目錄。如果伺服器上已配置了java環境,點選測試連接配接後會自動填充java目錄。

【記憶體】配置設定給ZooKeeper節點的最大記憶體空間。

【用戶端端口】對外通路的端口。

【Leader選取端口】選舉Leader的通信端口。

【資料同步端口】Zookeeper叢集内資料同步的通信端口。

【确定】填寫全部資訊之後,點選确定,儲存節點資訊,并關閉對話框。如果伺服器資訊填寫錯誤,會在對話框上展示相應的錯誤提示。

【取消】點選取消按鈕,關閉對話框,不儲存已填寫的資訊。

添加完所有Zookeeper節點後,點選“全部安裝”,系統将會自動安裝Zookeeper并且啟動Zookeeper。安裝成功後狀态欄中也會提示安裝成功,如下圖所示:

幹貨丨VooltDB部署與資料遷移

注意:Zookeeper安裝成功後,不可變更和修改節點資訊,隻能先解除安裝再增加、修改或删除節點。

節點管理

通過Zookeeper安裝頁面安裝Zookeeper後,可以點選Zookeeper配置中的“擷取”自動填充已安裝的Zookeeper資訊。如果不是通過頁面安裝的Zookeeper,需要在文本框中輸入全部Zookeeper叢集資訊,每個Zookeeper節點之間用“,”相連,每個節點的格式為“IP:port”或者“域名:port”。如果是VooltDB單機部署,則不需要填寫Zookeeper配置。如下圖所示:

幹貨丨VooltDB部署與資料遷移

在【VooltDB管理->節點管理->節點管理】頁面,點選“新增”按鈕,添加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後,在節點狀态頁面可以看到已經安裝的各個VooltDB節點的狀态,并且可以對各個執行個體進行管理,如重新開機節點、停止節點、啟動節點,如下圖所示:

幹貨丨VooltDB部署與資料遷移

叢集切換

如果需要使用VooltDB的災備功能,即進行主備叢集切換,需要購買RemoteBackup權限的license。購買後,節點管理頁面就會出現叢集切換功能,如下圖所示:

幹貨丨VooltDB部署與資料遷移

添加備叢集的方式和前文中添加主叢集的方式一樣,隻是在【叢集選項】中選擇備叢集,最多可以添加兩套備叢集。備叢集的節點數必須和主叢集的節點數一緻。安裝備叢集後,主叢集上的集市資料會自動備份到備叢集上。當工作叢集為備叢集時,隻能檢視資料,不能進行入集市、修改或變更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中已有集市檔案夾的詳細資訊,如下圖所示:

幹貨丨VooltDB部署與資料遷移

頁面各項說明:

【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節點的“排程任務”頁面,停掉每個節點上的作業服務,如下圖所示:

幹貨丨VooltDB部署與資料遷移

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節點的叢集。資料遷移步驟如下:

進入8.7MPP叢集所有C節點的“排程任務”頁面,停掉每個節點上的作業服務。

資料備份。資料備份的内容和步驟和MPP版本更新一緻,需要注意每個節點的資料都需要備份,檔案系統需要備份bihome和Yonghong/cloud目錄,資料庫系統需要先将資料庫内容同步到本地檔案系統後,再備份bihome和Yonghong/cloud目錄。

替換老叢集的jar包。8.7MPP叢集的所有節點,停止服務,備份Yonghong/product中原有jar包,然後替換9.2版本的api.jar、product.jar、thirds.jar。

将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節點全部啟動。

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。資料遷移步驟如下:

先根據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節點的排程任務,停止排程服務。

擷取對應版本的migration-task.jar放到老版本MPP叢集所有節點的product路徑下。

将9.2.4的C節點bihome下的vooltdb.config檔案放到老版本MPP中C節點的bihome下,可以隻放到某個C節點下,重新開機服務(此處可以将9.2.4上C節點Yonghong/bihome下的vooltdb.config檔案放到8.6的cnmr節點的bihome下)。

在8.6放置了vooltdb.config檔案的節點建立“自定義任務”類型的作業,操作類中填寫“g5.sched.jobs.MigrateToVooltDBTask”,預設為全量遷移,如果想單獨遷移某個集市檔案夾,則點選參數後的收集按鈕,在參數folder中填寫集市檔案夾的路徑,則對該檔案夾進行遷移。不支援同時遷移多個檔案夾。如下圖所示

幹貨丨VooltDB部署與資料遷移

儲存并執行作業,開始進行資料遷移,作業執行完成後,遷移完成。此時可停用MPP叢集,使用新的VooltDB叢集。