999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Hbase的備份和群集復制

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

Hbase的備份方式

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

熱備可以實現(xiàn)增量備份,其缺點是可能丟失部分數(shù)據(jù),因為在熱備的過程中,相關(guān)業(yè)務可能正在運行,數(shù)據(jù)正在進行讀寫操作,造成數(shù)據(jù)無法全部備份出來,導致丟失部分數(shù)據(jù)。

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

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

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

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

在某臺Hadoop服務器 上 執(zhí) 行“cd/hadoop/hbase-x.x.x.x/bin”,“./hbase shell” 命 令, 進入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ù)庫的運行。

要想進行備份,必須先了解Hbase數(shù)據(jù)庫的存放位置。進 入“/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)的文件存儲路徑信息。

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

注意:其備份過程可能較長,這是因為Hbase中文件較多的原因。

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

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

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

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

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

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

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

當想恢復該表時,必須首先在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ù)恢復到該表中。

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

例如,在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)容復制到“newtb”中。

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

集群復制的原理

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

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

實例配置Hbase集群復制

在實現(xiàn)Hbase集群復制前,需要準備兩個Hbase集群。當然,也可以在同一Hadoop集群中配置兩套Hbase集群來實現(xiàn)。這里以前者為例進行說明。

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

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

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

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

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

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

注意:因為是在主集群上添加從集群的對應關(guān)系,所以這里的Zookeeper指的是從集群上的quorum節(jié)點的地址列表。

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

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

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

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

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

管理HBase群集復制

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

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

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

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

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

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
數(shù)據(jù)庫
財經(jīng)(2015年3期)2015-06-09 17:41:31
數(shù)據(jù)庫
財經(jīng)(2014年21期)2014-08-18 01:50:18
數(shù)據(jù)庫
財經(jīng)(2014年6期)2014-03-12 08:28:19
數(shù)據(jù)庫
財經(jīng)(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 亚洲精品高清视频| 狠狠干欧美| 亚洲国产亚综合在线区| 欧美另类图片视频无弹跳第一页| 国内毛片视频| 亚洲永久色| 国产浮力第一页永久地址| 成人久久精品一区二区三区| 婷婷伊人久久| h视频在线播放| 在线亚洲小视频| 亚洲欧洲自拍拍偷午夜色| 青青青亚洲精品国产| 日本精品中文字幕在线不卡| 国产精品原创不卡在线| 激情在线网| 国产精品香蕉| 3344在线观看无码| 国产精品白浆无码流出在线看| 日本午夜精品一本在线观看| 亚洲高清中文字幕| 91精品国产综合久久香蕉922| 在线观看热码亚洲av每日更新| 久久网欧美| 久久国产精品麻豆系列| 国产日韩欧美一区二区三区在线| 九九香蕉视频| 狠狠躁天天躁夜夜躁婷婷| 国产女人在线| 国产免费精彩视频| 欧美亚洲国产日韩电影在线| 91精选国产大片| 99热国产这里只有精品无卡顿" | 人人爱天天做夜夜爽| 中文字幕有乳无码| 在线无码九区| 色网站在线免费观看| 欧美日韩国产一级| 精品国产www| 亚洲综合专区| 成年片色大黄全免费网站久久| 88国产经典欧美一区二区三区| 米奇精品一区二区三区| 欧美成人午夜在线全部免费| 最新国产高清在线| 丁香婷婷久久| 国产91全国探花系列在线播放| 日韩在线观看网站| 日本不卡免费高清视频| 日本黄色不卡视频| 国产福利微拍精品一区二区| 亚洲美女久久| 国产美女主播一级成人毛片| 亚洲最大看欧美片网站地址| 青青草91视频| 99视频在线免费看| 国产99免费视频| 在线国产91| 亚洲美女一区| 国产精品福利导航| 免费A级毛片无码无遮挡| 超碰精品无码一区二区| 五月激情综合网| a色毛片免费视频| 久久精品人人做人人爽| 久久精品亚洲专区| 精品三级网站| 狼友av永久网站免费观看| 香蕉视频在线精品| 五月婷婷中文字幕| 欧美伊人色综合久久天天| 美女免费黄网站| 日本午夜精品一本在线观看| 熟妇丰满人妻av无码区| 国产亚洲视频中文字幕视频| 亚洲天堂精品视频| 久久鸭综合久久国产| 五月六月伊人狠狠丁香网| 欧美69视频在线| 自拍欧美亚洲| 美女扒开下面流白浆在线试听 | 亚洲综合国产一区二区三区|