亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Hbase的備份和群集復(fù)制

        2018-03-03 23:25:19
        網(wǎng)絡(luò)安全和信息化 2018年3期
        關(guān)鍵詞:數(shù)據(jù)庫

        Hbase的備份方式

        Hbase的備份分為冷備和熱備,前者稱為離線備份,需要將Hbase數(shù)據(jù)庫整體停掉,通過Distcp分布式復(fù)制命令,實(shí)現(xiàn)高效率的備份。對(duì)于后者來說,不需要停止Hbase數(shù)據(jù)庫運(yùn)行,適合于一些需要不間斷運(yùn)行服務(wù)的場合。

        熱備可以實(shí)現(xiàn)增量備份,其缺點(diǎn)是可能丟失部分?jǐn)?shù)據(jù),因?yàn)樵跓醾涞倪^程中,相關(guān)業(yè)務(wù)可能正在運(yùn)行,數(shù)據(jù)正在進(jìn)行讀寫操作,造成數(shù)據(jù)無法全部備份出來,導(dǎo)致丟失部分?jǐn)?shù)據(jù)。

        熱備包括集群復(fù)制,CopyTable和Export等方式。當(dāng)然,也可以使用特定的參數(shù),將其導(dǎo)出到其他的集群中,這就需要使用集群復(fù)制技術(shù),使用到兩個(gè)Hbase集群,便于實(shí)現(xiàn)跨集群的數(shù)據(jù)實(shí)時(shí)異步復(fù)制功能。

        兩個(gè)集群之間的數(shù)據(jù)復(fù)制,通過Write-ahead log日志可以實(shí)現(xiàn),類似于MySQL的 主 從 復(fù) 制,Oracle的DataGuard之類的功能。使用集群復(fù)制,可以實(shí)現(xiàn)數(shù)據(jù)備份和災(zāi)難恢復(fù),數(shù)據(jù)集成,跨地域的數(shù)據(jù)分布以及讀寫分離功能。

        實(shí)現(xiàn)Hbase的冷備份

        對(duì)于Hbase的備份來說,一般是通過Distcp分布式復(fù)制來實(shí)現(xiàn)的。該命令位于Hadoop tools包中,可以實(shí)現(xiàn)在一個(gè)集群內(nèi)部內(nèi)部快速復(fù)制數(shù)據(jù),或者在多個(gè)HDFS集群之間來復(fù)制數(shù)據(jù),很適合于針對(duì)Hbase進(jìn)行冷備份操作,但前提是必須停止Hbase數(shù)據(jù)庫的運(yùn)行。這里以實(shí)際的例子,來說明如何實(shí)現(xiàn)冷備。

        在某臺(tái)Hadoop服務(wù)器 上 執(zhí) 行“cd/hadoop/hbase-x.x.x.x/bin”,“./hbase shell” 命 令, 進(jìn)入Hbase操作界面。在其中 執(zhí) 行“create 'test','cf'”,“put'test','row1','cf:a','value1'”命令,創(chuàng)建名為“test”的表,其中包含名為“cf”的列族。執(zhí)行“put'test','row1','cf:a','value1'”,“put'test','row2','cf:b','value2'”,“put'test','row3', 'cf:c', 'value3'”命令,向“test”表中插入三行數(shù)據(jù)。其中的“row1”等成為 Row Key,“'cf:a”等稱為列,“value1”等為列的值。

        執(zhí)行“scan'test'”命令,檢查指定表的插入情況。執(zhí)行“quit”,“./stop-hbase.sh”命令,停止Hbase數(shù)據(jù)庫的運(yùn)行。

        要想進(jìn)行備份,必須先了解Hbase數(shù)據(jù)庫的存放位置。進(jìn) 入“/hadoop/hbase-x.x.x.x/connf$”命令,執(zhí)行“cat hbase-site.xml” 命令,打開Hbase的配置文件,在其中的“” 欄 中顯 示Hbase在Hadoop中的根路徑信息,例如其內(nèi)容 為“”,就可以知曉其數(shù)據(jù)庫的位置。執(zhí)行“cd/hadoop/hadoop-x.x.x/bin”,“./hdfs dfs-ls/hbase”命令,顯示和Hbase相關(guān)的文件存儲(chǔ)路徑信息。

        執(zhí)行“jps”命令,看到和Hbase相關(guān)的Jave進(jìn)程消失,說明其已經(jīng)被停掉。執(zhí)行“./hadoop distcp/hbase/hbasebackup”命令,執(zhí)行備份操作,將“/hbase”下的所有數(shù)據(jù)備份到指定的“/hbasebackup”路徑下。在實(shí)際備份時(shí),可以看到啟動(dòng)了MapReduce任務(wù)進(jìn)行復(fù)制。

        注意:其備份過程可能較長,這是因?yàn)镠base中文件較多的原因。

        備份完成后,執(zhí)行“./hdfs dfs-ls/hbasebackup”命令,查看備份的具體內(nèi)容。 執(zhí) 行“cd/hadoop/hbase-x.x.x.x/bin”,“./start-hbase.sh”,“./hbase shell”命令,啟動(dòng)Hbase數(shù)據(jù)庫。進(jìn)入Hbsse shell操作臺(tái)。執(zhí)行“l(fā)ist”命令,顯示上述“test”表信息。

        為了測試備份效果執(zhí)行“disable'test'”,“drop'test'”命令,將該表刪除。然后執(zhí)行“quit”,“./stophbase.sh”命令,停止Hbase數(shù)據(jù)庫。在執(zhí)行Hbase恢復(fù)時(shí),實(shí)際上是執(zhí)行了兩步操作,先要將覆蓋的Hbase路徑進(jìn)行備份操作,防止因?yàn)榛謴?fù)失敗導(dǎo)致數(shù)據(jù)丟失的情況。執(zhí)行“./hdfs dfs-mv /hbase /hbase_data”命令,將原Hbase數(shù)據(jù)移動(dòng) 到“/hbase_data”目 錄中。再使用備份數(shù)據(jù)覆蓋原有的Hbase數(shù)據(jù),執(zhí)行“./hadoop distcp-overwrite/hbasebackup/hbase” 命令,使用“distcp”命令的“-overwrite”參數(shù),將上述備份的內(nèi)容覆蓋到Habse路徑下。完成后按照上述方法啟動(dòng)Hbase,在HaseShell中執(zhí)行“l(fā)ist”命令,顯示“test”表示已經(jīng)恢復(fù)成功。

        實(shí)現(xiàn)Hbase的熱備份

        對(duì)于Hbase的熱備來說,不需要停掉Hbase數(shù)據(jù)庫,它常用的工具是Export和Import,前者可以將指定的表導(dǎo)出到HDFS或者本地文件系統(tǒng)中,數(shù)據(jù)會(huì)被導(dǎo)出到指定的目錄中,一般情況下為一個(gè)Region對(duì)應(yīng)一個(gè)文件。默認(rèn)采用的是Sequence格式的文件形式,在導(dǎo)出過程中可以對(duì)數(shù)據(jù)進(jìn)行壓縮處理。因?yàn)樵贖base中存儲(chǔ)的數(shù)據(jù)體積較大,所以啟用壓縮功能可以有效節(jié)省磁盤的空間。

        例如,在Hbase Shell控制臺(tái)中執(zhí)行“scan'test'”命令,來查看“test”表中的內(nèi)容。在Linux命令行下執(zhí)行“./hbase org.apache.hadoop.hbase.mapreduce.Export test/data/bak”命令,將該表的內(nèi)容導(dǎo)出到本地磁盤中的“/data/bak”目錄中。當(dāng)然,也可以將其導(dǎo)出到HDFS文件系統(tǒng)中。執(zhí)行“./hbase org.apache.hadoop.hbase.mapreduce.Export test hdfs://master:9000/backup”之 類的命令,來實(shí)現(xiàn)該要求。

        注意:在導(dǎo)出路徑中如果直接查看對(duì)應(yīng)文件的話,是無法顯示其內(nèi)容的。

        在Hbase Shell控制臺(tái)中 執(zhí) 行“disable'test'”,“drop'test'”命令,將該表刪除。

        當(dāng)想恢復(fù)該表時(shí),必須首先在Hbase中創(chuàng)建該表,執(zhí)行“create'test','cf'”,“p u t'test','row1','cf:a','value1'” 命令,創(chuàng)建該“test”的表。 在Hadoop的“bin”路徑下執(zhí)行“./hbase org.apache.hadoop.hbase.mapreduce.Import test/data/bak”命令,即可將上述備份的數(shù)據(jù)恢復(fù)到該表中。

        除此之外,還可以使用CopyTable工具實(shí)現(xiàn)熱備,它可以將所有的表數(shù)據(jù)或者表中的部分?jǐn)?shù)據(jù)復(fù)制到同一個(gè)集群或者不同集群的另外一張表中,在此期間,可以通過指定導(dǎo)入數(shù)據(jù)的時(shí)間戳實(shí)現(xiàn)增量導(dǎo)出操作。

        例如,在Hbase Shell下執(zhí)行“create'test1','c f'”,“p u t'test','row1','cf:a','value1'”命令,創(chuàng)建該“test1”的表。然后在Linux下執(zhí)行“./hbase org.apache.hadoop.hbase.mapreduce.CopyTable--new.name=newtb test”命令,可以將“test”表中的內(nèi)容復(fù)制到“newtb”中。

        以上測試涉及的“test”和“test1”均處于同一個(gè)Hbase數(shù)據(jù)庫中。

        集群復(fù)制的原理

        實(shí)現(xiàn)Hbase集群復(fù)制,離不開Write-ahead log日志,在其中存儲(chǔ)一些關(guān)于Hbase的記錄修改操作信息。利用網(wǎng)絡(luò)連接將一個(gè)集群中將該日志傳送到另外的集群中,這樣該集群就可以利用該日志,將相關(guān)的操作重做一遍,來實(shí)現(xiàn)數(shù)據(jù)的復(fù)制操作。

        在主從集群之間,采用的是異步同步的方式。在Hbase集群中,使用到了日志機(jī)制,數(shù)據(jù)的變化操作就被記錄在日志中,只有當(dāng)日志落盤后,才認(rèn)為數(shù)據(jù)的更改操作已經(jīng)完成。日志存儲(chǔ)在HDFS中。在主從復(fù)制過程中,主集群會(huì)主動(dòng)將數(shù)據(jù)的修改信息通過日志傳送給從節(jié)點(diǎn),當(dāng)然這必須依靠ZooKeeper來實(shí)現(xiàn)。

        實(shí)例配置Hbase集群復(fù)制

        在實(shí)現(xiàn)Hbase集群復(fù)制前,需要準(zhǔn)備兩個(gè)Hbase集群。當(dāng)然,也可以在同一Hadoop集群中配置兩套Hbase集群來實(shí)現(xiàn)。這里以前者為例進(jìn)行說明。

        注意:兩套Hbase集群的版本最好保持一致。

        執(zhí)行“./hbase version”命令,來查看其版本信息。而且主從節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接必須打通,兩者的主機(jī)名不能相同。執(zhí)行“cat/etc/hosts”命令,可以查看主機(jī)名信息。在主集群中在 Hbase的“conf”路徑下對(duì)“hbase-site.xml”文件進(jìn)行修改,將其中的“”欄中的值設(shè)置為“”,激活集群復(fù)制功能。

        注意:在所有的從節(jié)點(diǎn)上也必須執(zhí)行同樣的修改操作。

        接著在主集群節(jié)點(diǎn)中添加復(fù)制點(diǎn),配置主從集群的復(fù)制關(guān)系。具體的命令格式為“add_peer”,其 中 的“ID”參數(shù)是復(fù)制所需的唯一的字符串。

        注意:不要包含特殊字符。

        “CLUSTER_KEY”參數(shù)指定群集鍵,該參數(shù)的格式為“hbase.zookeeper.quorum:hbase.zookeeper.property.clientPort:zookeeper.znode.parent”,可以看出其實(shí)際上由三個(gè)部分組成,其中的“hbase.zookeeper.quorum”參數(shù)為Zookeeper集群的地址列表。

        注意:因?yàn)槭窃谥骷荷咸砑訌募旱膶?duì)應(yīng)關(guān)系,所以這里的Zookeeper指的是從集群上的quorum節(jié)點(diǎn)的地址列表。

        例如,在某從節(jié)點(diǎn)Slave1上 進(jìn) 入“/hadoop/hbase-x.x.x.x/conf”路徑下,執(zhí) 行“cat hbasesite.xml”命令,在其中找到“”行,在其下顯示“”, 表明這里使用了兩個(gè)從節(jié)點(diǎn)?!癶base.zookeeper.property.clientPort:”參數(shù)指定Zookeeper客戶端連接Zookeeper服務(wù)器的端口號(hào),這里的客戶端指的是主集群的客戶端,端口號(hào)為從集群的Zookeeper服務(wù)器端口號(hào)。在該從節(jié)點(diǎn)上進(jìn)入“/hadoop/zookeeper-x.x.x/conf” 目錄下,執(zhí)行“cat zoo.cfg|grep-i port”命令,在返回信息中的“ClientPort”欄中顯示端口號(hào),默認(rèn)為2181。

        上述“znode.parent”參數(shù)用來設(shè)置Zookeeper中的 Hbase的根 ZNode,默 認(rèn)值 為“:/hbase”。在主集群節(jié)點(diǎn)中進(jìn)入“/hadoop/zookeeper-x.x.x/conf”目錄,執(zhí)行“./zkCli.sh-server 172.16.1.10:port 2181”命令,利用主集群的客戶端連接從集群節(jié)點(diǎn)的Zookeeper Server,這里的“172.16.1.10”為從集群節(jié)點(diǎn)的IP。

        在其控制臺(tái)下執(zhí)行“l(fā)s/”命令,顯示“[hbase,zookeeper]”。執(zhí)行“l(fā)s /hbase”命令,顯示從集群根目錄信息。在某從節(jié)點(diǎn)上進(jìn)入“/hadoop/hbase-x.x.x.x/bin”目錄下,執(zhí)行“./hbase shell”命令,在控制臺(tái)下執(zhí)執(zhí)行“add_peer'1'"master,slave1,slave2,:2 181:/hbase"”命令,配置主從復(fù)制關(guān)系。

        執(zhí) 行“l(fā)ist_peers”命令,顯示已經(jīng)存在的主從復(fù)制關(guān)系信息,包括其ID、群集鍵和狀態(tài)等。在測試時(shí)可先在主界面上創(chuàng)建一張表,按照上述配置,可以將其復(fù)制到所有的從節(jié)點(diǎn)上。在主節(jié)點(diǎn)上進(jìn)入Hbase Shell控制臺(tái),執(zhí)行“create'replat',{NAME=>'cf1',REPLICATI ON_SCOPE=>1}”命令,創(chuàng)建名為“replat”的表,其中“Name”參數(shù)指定列族名稱,“REPLICATION_SCOPE”參數(shù)指定復(fù)制所需的唯一的ID信息。

        在所有的從節(jié)點(diǎn)的Hbase Shell控 制臺(tái)中分別執(zhí)行“create'replat',{NAME=>'cf1’}”命令,來創(chuàng)建同名的表。然后在主節(jié)點(diǎn)上執(zhí)行“put'replat','row1','cf1:v1','foo‘”命令,向該表中添加數(shù)據(jù)。接著在主從節(jié)點(diǎn)上分別執(zhí)行“scan‘replat’”命令,都可以顯示該表的內(nèi)容,說明已經(jīng)實(shí)現(xiàn)。

        管理HBase群集復(fù)制

        要想用好Hbase的群集復(fù)制功能,必須熟悉與之相關(guān)的命令。例如使用“add_peer”命令,可以配置主從復(fù)制關(guān)系,利用“l(fā)ist_peers”命令,可以查看群集復(fù)制配置信息。使用“disable_peer ”命令,可以暫停指定ID的集群復(fù)制,但是主節(jié)點(diǎn)會(huì)繼續(xù)跟蹤數(shù)據(jù)的改變?nèi)罩拘畔?。例如,?zhí)行“disable_peer 1”命令,可暫停ID為1的群集復(fù)制操作。對(duì)應(yīng)地使用“enable_peer ”命令,可指定ID的集群復(fù)制,執(zhí)行“remove_peer”命令,可徹底刪除主從節(jié)點(diǎn)的復(fù)制關(guān)系,主節(jié)點(diǎn)不會(huì)跟蹤數(shù)據(jù)的改變?nèi)罩拘畔?。?zhí)行“enable_table_replication ”命令,可將指定表中的所有列族全部復(fù)制到從節(jié)點(diǎn)上。

        執(zhí) 行“disable_table_replication ”命令,可以關(guān)閉指定表中的所有列族的復(fù)制功能,使用“append_peer_tableCFs”命令,可以將某張表中原先沒有做集群復(fù)制的列族添加到復(fù)制之列。使用“l(fā)ist_replicated_table”命令,可以查看當(dāng)前處于復(fù)制狀態(tài)的所有表信息。使用“remove_peer_tableCFs”命令,指定需要?jiǎng)h除的某張表需要復(fù)制的列族。執(zhí)行“set_peer_tableCFs”命令,指定哪些表可以進(jìn)行復(fù)制。使用“show_peer_tableCFs”命令,可查看某張表的哪些列族處于復(fù)制的狀態(tài)。

        監(jiān)控和優(yōu)化集群復(fù)制

        在主節(jié)點(diǎn)上使用“status'replication‘” 命 令,可以查看集群復(fù)制的狀態(tài)。也可以在Linux命令行下執(zhí)行“./hbase org.apache.hadoop.hbase.mapreduce.replication.VerifyReplication 1 reptable1”命令,可以對(duì)指定ID的集群復(fù)制中指定表的復(fù)制操作進(jìn)行校驗(yàn),這里針對(duì)的是ID為1群集復(fù)制中名為“reptable1”的表進(jìn)行校驗(yàn)。

        當(dāng)主集群要將大量的數(shù)據(jù)同步到從集群時(shí),從集群的壓力會(huì)比較大,導(dǎo)致整個(gè)群集復(fù)制的性能變得比較差。解決的方法是將主集群的和復(fù)制相關(guān)的默認(rèn)配置值設(shè)置的小一些,可以考慮適當(dāng)減少每次同步數(shù)據(jù)的大小。例如打開“hbase-site.xml”文件,對(duì)“replication.source.size.capacity”的值進(jìn)行修改,來設(shè)置主集群每次向從集群發(fā)送的Entry的包的最大值。對(duì)“replication.source.nb.capacity”參數(shù)進(jìn)行修改,來設(shè)置主集群每次向從集群發(fā)送的Entry最大的個(gè)數(shù)。

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        欧美视频九九一区二区| 亚洲av高清在线观看一区二区| 粗大猛烈进出高潮视频| 日本一区二区不卡视频| 国产卡一卡二卡三| 国产女女做受ⅹxx高潮| jizz国产精品免费麻豆| 精品午夜一区二区三区久久| 日本一极品久久99精品| 国产亚洲精品视频网站| 无码精品国产一区二区三区免费 | 国产哟交泬泬视频在线播放| 中文字幕 在线一区二区| 亚洲熟女av在线观看| 日韩精品一区二区在线天天狠天| 爱情岛论坛亚洲永久入口口| 国产天美传媒性色av| 国内精品人妻无码久久久影院94| 日韩中文字幕乱码在线| 亚洲成生人免费av毛片| 少妇一级淫片中文字幕| 亚洲欧美色一区二区三区| 亚洲av之男人的天堂网站| 国产精品一区二区资源| 精品亚洲国产亚洲国产| 亚洲精品1区2区在线观看| 无码av无码天堂资源网| 91华人在线| 美女被内射中出在线观看| 国产精品扒开腿做爽爽爽视频| 精品久久无码中文字幕| 亚洲av五月天天堂网| 国产一品二品精品在线| 亚洲中文字幕无码不卡电影| 色一情一乱一伦一区二区三欧美 | 亚洲av日韩av不卡在线观看| 国产韩国精品一区二区三区| 久久精品国产亚洲av性瑜伽| 久久婷婷五月综合色丁香| 桃花色综合影院| 波多野结衣一区二区三区免费视频 |