日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据产品的备份及恢复

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据产品的备份及恢复 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • Hbase
    • Distcp方式
    • 整體下載上傳方式
    • CopyTable備份
    • Export工具
  • elasticsearch
    • 建立備份快照數(shù)據(jù)掛載點
    • 建立快照倉儲repository
    • 建立snapshot快照備份
    • 恢復snapshot快照數(shù)據(jù)
      • 原集群恢復
      • 新集群恢復
  • HDFS

?

Hbase的備份恢復

hbase數(shù)據(jù)備份策略有兩類:

  • 離線備份(關閉Hbase集群進行全備份,包括distcp方式、整體下載上傳)
  • 在線備份(在線對集群進行備份,存在數(shù)據(jù)丟失的風險)
  • ?進行離線備份時,必須全部關閉Hbase集群,或者disable所有表,然后通過distcp命令將HDFS上的Hbase數(shù)據(jù)復制到另外或者同一個集群的不同目錄就可以了。

    如果兩個集群互不可見,那只能將數(shù)據(jù)文件下載到本地再上傳(整體下載上傳方式)。

    ??

    • Distcp方式

    如果是想將數(shù)據(jù)遷移到另一個Hbase集群的話,另一個hbase集群必須關閉,并且數(shù)據(jù)要復制到hbase.rootdir下。

    ①在新備份集群下建立一個文件夾,用來保存需要備份的數(shù)據(jù):

    $HADOOP_HOME/bin/hadoop fs -mkdir /backup

    ?

    ②在舊集群執(zhí)行:

    $HADOOP_HOME/bin/hadoop distcp hdfs://maste:9000/hbase hdfs://backup:9000/backup

    hdfs://maste:9000/hbase 是取的hbase-site.xml文件中hbase.rootdir的屬性值(一定要參照rootdir的值,因為namenode做了HA的話,這里是有差異的)

    hdfs://backup:9000/backup 是備份數(shù)據(jù)的接收地址。

    執(zhí)行命令以后hadoop會啟動一個MapReduce任務,可以在50030頁面進行查看;

    執(zhí)行成功后,在新集群執(zhí)行

    $HADOOP_HOME/bin/hadoop fs -ls /backup

    ?會發(fā)現(xiàn)backup目錄下有一個hbase目錄


    ③如果需要使用備份數(shù)據(jù)進行恢復的話,將數(shù)據(jù)移動到hbase.rootdir下,然后啟動hbase即可。

    如果使用ambari的話,路徑會有些差異,這里給出完整例子(從集群mycluster移動到集群mc2,其中mc2的active namenode是node1.mc.cn)

    #ssh連接mycluster機器的某節(jié)點 su hdfs#備份到本集群 hadoop distcp hdfs://mycluster/apps/hbase/data hdfs://mycluster/backup#遷移到另一集群mc(在mc上恢復) hadoop distcp hdfs://mycluster/apps/hbase/data hdfs://node1.mc.cn:8020/apps/hbase/#備份到另一集群mc(不恢復,只備份) hadoop distcp hdfs://mycluster/apps/hbase/data hdfs://node1.mc.cn:8020/backup

    如果要恢復數(shù)據(jù)的話,需要確認數(shù)據(jù)目錄的Owner是hbase,否則hbase無法成功啟動

    ? hadoop fs -chown -R hbase:hdfs /apps/hbase/data

    ??

    • 整體下載上傳方式

    當兩集群互不可見時,如果要離線備份恢復,可以使用這種方式。

    ①將備份集群和恢復集群都關閉

    ②下載待備份數(shù)據(jù)到本地

    ③將備份數(shù)據(jù)上傳到待恢復集群

    ④啟動集群

    示例:

    #注意命令執(zhí)行的所在節(jié)點#將待備份數(shù)據(jù)下載到本地 hadoop fs -copyToLocal /apps/hbase/data ~/backup/#將本地數(shù)據(jù)打包,拷貝到其他集群#在其他集群將打包后數(shù)據(jù)解壓,并上傳到hdfs hadoop fs -put ~/backup/* /apps/hbase/

    ??

    • CopyTable備份

    使用CopyTable可以將一張表的數(shù)據(jù)備份到另外一張表,也可以備份到另一集群的其他表中,要注意的是CopyTable備份不支持多版本。
    ①在新備份集群創(chuàng)建一張表,該表需要與備份表相同的結構:

    create 'newtable','a','b'

    ?

    ②使用命令進行全表備份:

    $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=newtable --peer.adr=zookeeperhbase.zookeeper.quorum:2181:/hbase oldtable

    也可以只備份指定的某個列簇,下面的命令表示備份oldtable表中的列簇a到newtable表中

    $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --families=a --new.name=newtable --peer.adr=zookeeperhbase.zookeeper.quorum:2181:/hbase oldtable

    ??

    • Export工具

    備份為Hdfs文件,支持數(shù)據(jù)多版本。此工具一次只能操作一張表,導出的順序文件可以通過Import工具導入HBase。

    ①使用Export命令將表數(shù)據(jù)寫為文件

    $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.Export oldtable /backup/tableName

    查看HDFS上的backup目錄會發(fā)現(xiàn)三個文件(_SUCCESS、_logs、part-m-00000):

    hadoop fs -ls /backup

    ?

    ②使用distcp或者copyToLocal的方式將備份的數(shù)據(jù)從原h(huán)dfs集群拷貝到目標hdfs集群

    ③需要先建一個表來接收備份的表

    create 'newtable','a','b'

    ?

    ④使用Import命令導入存儲文件,恢復Hbase數(shù)據(jù)

    $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.Import newtable /backup/tableName

    ?

    ?

    ElasticSearch的備份恢復

    總體步驟:

    • 建立備份快照數(shù)據(jù)掛載點
    • 建立快照倉儲repository
    • 建立snapshot快照備份
    • 恢復snapshot快照數(shù)據(jù)

    ?

    1.建立備份快照數(shù)據(jù)掛載點

  • 安裝EPEL rpm -i https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    ?如果這個鏈接失效,可訪問官網(wǎng)http://fedoraproject.org/wiki/EPEL

  • 安裝sshfs yum -y install sshfs fuse

    ?

  • 目錄共享 #假設將數(shù)據(jù)共享到節(jié)點data.company.cn的目錄 /mnt/es-data/(最好不要放在系統(tǒng)盤所在目錄),在該節(jié)點上執(zhí)行 mkdir -m 777 /mnt/es-data#假設es集群的共享目錄是 $elasticsearch_HOME/backup #在es集群的每個節(jié)點上執(zhí)行 cd $elasticsearch_HOME mkdir -m 777 backup
    #掛載共享目錄 sshfs root@data.company.cn:
    /mnt/es-data $elasticsearch_HOME/backup -o allow_other

    ?

  • ?

    2.建立快照倉儲repository

    ?

  • 修改ES配置文件 vi config/elasticsearch.yml

    ?添加倉庫路徑(字符串中的路徑就是在第一步中設定的共享目錄路徑)

    path.repo: ["/opt/module/elasticsearch-2.4.2/backup"]

    ?

  • ?重啟elasticsearch kill `jps |grep Elasticsearch |cut -c1-5` bin/elasticsearch -d

    ?

  • 創(chuàng)建倉庫 curl -X PUT \http://192.168.0.38:9200/_snapshot/mybackup \-d '{"type": "fs","settings":{"compress": true,"location":"/opt/module/elasticsearch-2.4.2/backup"} }' #刪除倉庫 curl -X DELETE http://192.168.0.38:9200/_snapshot/mybackup?
  • ?

    3.建立snapshot快照備份

    ?快照指定索引(去掉參數(shù)數(shù)據(jù)的話,就是快照所有索引)

    ?

    curl -X PUT \http://192.168.0.38:9200/_snapshot/mybackup/snapshot_1 \-d '{"indices": "myindex" }'#附 #查看索引快照情況 curl -X GET http://192.168.0.38:9200/_snapshot/mybackup/snapshot_1/_status?pretty#刪除快照(也可用于中斷正在進行的快照) curl -X DELETE http://192.168.0.38:9200/_snapshot/mybackup/snapshot_1

    ??

    4.恢復snapshot快照數(shù)據(jù)

  • 如果備份數(shù)據(jù)要在新集群恢復,則需要先在新集群創(chuàng)建相同結構的index及type,并創(chuàng)建快照倉儲(參照第二步) curl -X POST \http://192.168.0.39:9200/yuqing \-d '{"settings":{"number_of_shards":5,"number_of_replicas":1},"mappings":{"article":{"dynamic":"strict","properties":{"title":{"type":"string","store":"yes","index":"analyzed","analyzer": "ik_max_word","search_analyzer": "ik_max_word"},"types":{"type":"string","store":"yes","index":"analyzed","analyzer": "ik_max_word","search_analyzer": "ik_max_word"},"url":{"type":"string","store":"no","index":"no"}}}} }'
    ==========================
    #這里只是舉例

    ?

  • 需要先關閉index,否則會出現(xiàn)問題【cannot restore index [myindex] because it's open】 curl -X POST http://192.168.0.38:9200/yuqing/_close

    ?

  • 恢復數(shù)據(jù)(去掉參數(shù)即可恢復所有索引,否則恢復指定索引 myindex) curl -X POST http://192.168.0.38:9200/_snapshot/mybackup/snapshot_1/_restore \ -d '{"indices": "myindex" }' #查看恢復進度 curl -X GET http://192.168.0.38:9200/yuqing/_recovery #取消恢復(索引yuqing正在被恢復) curl -X DELETE http://192.168.0.38:9200/yuqing

    ??

  • 重新開啟index curl -X POST http://192.168.0.38:9200/yuqing/_open

    ?執(zhí)行下面語句就可以看到備份的數(shù)據(jù)了

    curl -X GET http://192.168.0.38:9200/yuqing/article/_search

    ??

  • 參考:

    • Hbase數(shù)據(jù)備份和恢復
    • hbase 備份及恢復

    • ?

      Elasticsearch:權威指南?

    ?

    轉載于:https://www.cnblogs.com/TiestoRay/p/6807520.html

    總結

    以上是生活随笔為你收集整理的大数据产品的备份及恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。