• Hbase

    • Distcp方式
    • 整体下载上传方式
    • CopyTable备份
    • Export工具
  • elasticsearch
    • 建立备份快照数据挂载点
    • 建立快照仓储repository
    • 建立snapshot快照备份
    • 恢复snapshot快照数据
      • 原集群恢复
      • 新集群恢复
  • HDFS

Hbase的备份恢复

hbase数据备份策略有两类:

  1. 离线备份(关闭Hbase集群进行全备份,包括distcp方式、整体下载上传)
  2. 在线备份(在线对集群进行备份,存在数据丢失的风险)

进行离线备份时,必须全部关闭Hbase集群,或者disable所有表,然后通过distcp命令将HDFS上的Hbase数据复制到另外或者同一个集群的不同目录就可以了。

如果两个集群互不可见,那只能将数据文件下载到本地再上传(整体下载上传方式)。

  • Distcp方式

如果是想将数据迁移到另一个Hbase集群的话,另一个hbase集群必须关闭,并且数据要复制到hbase.rootdir下。

①在新备份集群下建立一个文件夹,用来保存需要备份的数据:

$HADOOP_HOME/bin/hadoop fs -mkdir /backup

②在旧集群执行:

$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 是备份数据的接收地址。

执行命令以后hadoop会启动一个MapReduce任务,可以在50030页面进行查看;

执行成功后,在新集群执行

$HADOOP_HOME/bin/hadoop fs -ls /backup

会发现backup目录下有一个hbase目录

③如果需要使用备份数据进行恢复的话,将数据移动到hbase.rootdir下,然后启动hbase即可。

如果使用ambari的话,路径会有些差异,这里给出完整例子(从集群mycluster移动到集群mc2,其中mc2的active namenode是node1.mc.cn)

#ssh连接mycluster机器的某节点
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

如果要恢复数据的话,需要确认数据目录的Owner是hbase,否则hbase无法成功启动

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

  • 整体下载上传方式

当两集群互不可见时,如果要离线备份恢复,可以使用这种方式。

①将备份集群和恢复集群都关闭

②下载待备份数据到本地

③将备份数据上传到待恢复集群

④启动集群

示例:

#注意命令执行的所在节点#将待备份数据下载到本地
hadoop fs -copyToLocal /apps/hbase/data ~/backup/#将本地数据打包,拷贝到其他集群#在其他集群将打包后数据解压,并上传到hdfs
hadoop fs -put ~/backup/* /apps/hbase/

  • CopyTable备份

使用CopyTable可以将一张表的数据备份到另外一张表,也可以备份到另一集群的其他表中,要注意的是CopyTable备份不支持多版本。
①在新备份集群创建一张表,该表需要与备份表相同的结构:

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文件,支持数据多版本。此工具一次只能操作一张表,导出的顺序文件可以通过Import工具导入HBase。

①使用Export命令将表数据写为文件

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

查看HDFS上的backup目录会发现三个文件(_SUCCESS、_logs、part-m-00000):

hadoop fs -ls  /backup

②使用distcp或者copyToLocal的方式将备份的数据从原hdfs集群拷贝到目标hdfs集群

③需要先建一个表来接收备份的表

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

④使用Import命令导入存储文件,恢复Hbase数据

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

ElasticSearch的备份恢复

总体步骤:

  • 建立备份快照数据挂载点
  • 建立快照仓储repository
  • 建立snapshot快照备份
  • 恢复snapshot快照数据

1.建立备份快照数据挂载点

  1. 安装EPEL

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

    如果这个链接失效,可访问官网http://fedoraproject.org/wiki/EPEL

  2. 安装sshfs
    yum -y install sshfs fuse

  3. 目录共享
    #假设将数据共享到节点data.company.cn的目录 /mnt/es-data/(最好不要放在系统盘所在目录),在该节点上执行
    mkdir -m 777 /mnt/es-data#假设es集群的共享目录是 $elasticsearch_HOME/backup
    #在es集群的每个节点上执行
    cd $elasticsearch_HOME
    mkdir -m 777 backup#挂载共享目录
    sshfs root@data.company.cn:/mnt/es-data  $elasticsearch_HOME/backup  -o allow_other

2.建立快照仓储repository

  1. 修改ES配置文件

    vi config/elasticsearch.yml

    添加仓库路径(字符串中的路径就是在第一步中设定的共享目录路径)

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

  2. 重启elasticsearch
    kill `jps |grep Elasticsearch |cut -c1-5`
    bin/elasticsearch -d

  3. 创建仓库
    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快照备份

快照指定索引(去掉参数数据的话,就是快照所有索引)

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快照数据

  1. 如果备份数据要在新集群恢复,则需要先在新集群创建相同结构的index及type,并创建快照仓储(参照第二步)

    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"}}}}
    }'==========================#这里只是举例

  2. 需要先关闭index,否则会出现问题【cannot restore index [myindex] because it's open】
    curl -X POST  http://192.168.0.38:9200/yuqing/_close

  3. 恢复数据(去掉参数即可恢复所有索引,否则恢复指定索引 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

  4. 重新开启index
    curl -X POST  http://192.168.0.38:9200/yuqing/_open

    执行下面语句就可以看到备份的数据了

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

参考:

  • Hbase数据备份和恢复
  • hbase 备份及恢复

  • Elasticsearch:权威指南

转载于:https://www.cnblogs.com/TiestoRay/p/6807520.html

大数据产品的备份及恢复相关推荐

  1. 《大数据》杂志——大数据容灾备份技术挑战和增量备份解决方案

    大数据容灾备份技术挑战和增量备份解决方案 罗圣美1,2,李 明1,叶郁文1 (1.中兴通讯股份有限公司 南京 210012: 2.清华大学计算机科学与技术系 北京 100084) 摘要:大数据已成为当 ...

  2. 第一章 阿里大数据产品体系

    1.大数据基础知识 什么是数据分析? 数据分析是基于商业目的,有目的的进行收集.整理.加工和分析数据,提炼有价值信息的过程. 数据分析流程:需求分析明确目标➡️数据收集加工处理➡️数据分析数据展现➡️ ...

  3. 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系

    阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ...

  4. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)

    基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...

  5. 首批+唯一。阿里云实时计算 Flink 版通过信通院大数据产品稳定性测试

    概要 2021年12月13日,中国信息通信研究院新一轮"大数据产品能力评测"结果公布,阿里云实时计算 Flink 版通过分布式流处理平台稳定性专项测评,阿里云成为「首批+唯一」通过 ...

  6. 大数据产品不仅仅是IT工具

    对于企业的业务人员,特别是数据科学家人群来说,Informatica的Intelligent Data Platform不仅是一个智能化的大数据预处理工具,而且可以像业务系统一样为企业带来直接的价值. ...

  7. 快讯 | 清华数为物联网数据库IoTDB被评为“优秀大数据产品”

    2019年12月,由清华大学软件学院自主研发的"清华数为物联网数据库IoTDB"在由大数据产业生态联盟.联盟大数据与产品质量保障工作组.中国软件评测中心组织的专业评审活动中被评为& ...

  8. 如何快速全面建立自己的大数据知识体系? 大数据 ETL 用户画像 机器学习 阅读232 作者经过研发多个大数据产品,将自己形成关于大数据知识体系的干货分享出来,希望给大家能够快速建立起大数据

    如何快速全面建立自己的大数据知识体系? 大数据 ETL 用户画像 机器学习 阅读232  作者经过研发多个大数据产品,将自己形成关于大数据知识体系的干货分享出来,希望给大家能够快速建立起大数据产品的体 ...

  9. 阿里云发布大数据产品ODPS 6小时处理100PB数据

     阿里云发布大数据产品ODPS 6小时处理100PB数据 阿里云发布ODPS 可分析PB级海量数据 新浪科技讯 7月8日下午消息,阿里云计算发布大数据产品--ODPS.通过ODPS在线服务,小型公 ...

最新文章

  1. 面试题16: 数值的整数次方
  2. ubantu 安装杀毒软件 clamav
  3. HDFS 常用操作分类汇总整理
  4. linux安装tf-gpu注意事项
  5. Debian下IPv6设定主地址 Set primary IPv6 address under Debian Linux
  6. leetcode43. 字符串相乘
  7. 漫步最优化十七——点对点映射
  8. 一文讲述G6实现流程图绘制的常用方法
  9. 修改js版本_啥都学点之使用nvm安装Node.js并实现Node.js多版本管理
  10. 排列:计算1!+2*2!+3*3!+...+n*n!
  11. 2021龙小丽高考成绩查询,学霸高考672分,家长强令复读考清华,分数出来全家人失望...
  12. 多线程断点下载开发总结(一) - Http head Range标记
  13. MAC 下shell工具推荐 zentermlite
  14. 【优化调度】基于人工鱼群算法求解梯级水库优化调度matlab源码
  15. 资源搜索神器 海量精品资源教程 大大啦啦资源神器
  16. 生信学习笔记:利用GATK call SNP
  17. Hadoop HA 搭建
  18. IPFS占据10%存储份额?预测FIL价格千U?现在挖FIL晚吗?
  19. 实验05 指针及其在程序设计中的应用(2021级)
  20. 广工工作室各方向学习指南

热门文章

  1. linux借助expect完成自动登录
  2. [Windows]python+PyQT+Eric安装配置
  3. 去除le-table表格的hover效果
  4. Linux 串口编程二 深入了解 termios
  5. react学习(6)----react样式多用内联
  6. 前端学习(3158):react-hello-react之一个简单的helloworld
  7. [vue] 写出多种定义组件模板的方法
  8. 前端学习(2867):vue3数据劫持解析2
  9. [css] box-sizing常用的属性有哪些?分别有什么作用?
  10. [css] 请使用CSS画一个带锯齿形边框圆圈