我们常常会碰到需要迁移HBase数据的场景,当一个HBase集群运行较长时间后,往往数据量都会很大,HBase集群往往支撑的都是线上的业务,不像跑批的Hive/Spark集群,不能随便停机。HBase默认提供import/export方法支持备份和还原,而且支持增量,但是因为是使用HBase的API导出和还原数据,对RegionServer的压力会很大,往往会影响旧集群的在线业务。
该文档主要通过使用HBase快照导出历史全量数据并还原到新的HBase集群,然后改造源生的ExportSnapshot类,通过比较变化的文件实现导出增量,并最终实现HBase跨集群的增量备份和还原。
本文主要介绍 Hbase 常用的三种简单的容灾备份方案,即CopyTable、Export/Import、Snapshot。分别介绍如下:
前面Fayson讲过HDFS的快照,参考如何在CDH集群使用HDFS快照,那么HBase的快照呢?HBase快照功能丰富,有很多特征,并且创建时不需要关闭集群。快照可以在几秒内完成,对整个集群没有任何性能影响,另外快照只占用很小的空间。本篇文章主要讲述如何使用Cloudera Manager管理HBase的快照。
在服务器(主机名为repo)的mysql数据库中的"test"库中有一张"student"表,其中内容如下:
基于传统关系型数据库的稳定性,还是有很多企业将数据存储在关系型数据库中;早期由于工具的缺乏,Hadoop与传统数据库之间的数据传输非常困难。基于前两个方面的考虑,需要一个在传统关系型数据库和Hadoop之间进行数据传输的项目,Sqoop应运而生。
sqoop,即SQL To Hadop,目的是完成关系型数据库导入导出到Hadoop
Export、Import底层原理是MR,不适合太大量的数据迁移 此为跨集群的数据导入,若非跨集群,修改hdfs地址即可 导入导出: 目标表的特有数据不会覆盖掉,会保持特有数据的所有特征导出表数据 导出表数据 outputdir最好不存在 Export会自动创建 命令:hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> <endtime>]]] 例子:
将 mysql 数据库中的 hive 数据库中的 ROLES 表数据导入到 HDFS 中的 /tmp/root/111 目录下。执行代码如下:
从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类。下面分别介绍一下。
sqoop是apache旗下,用于关系型数据库和hadoop之间传输数据的工具,sqoop可以用在离线分析中,将保存在mysql的业务数据传输到hive数仓,数仓分析完得到结果,再通过sqoop传输到mysql,最后通过web+echart来进行图表展示,更加直观的展示数据指标。
摘要:第九届中国数据库技术大会,阿里巴巴技术专家孟庆义对阿里HBase的数据管道设施实践与演进进行了讲解。主要从数据导入场景、 HBase Bulkload功能、HImporter系统、数据导出场景、HExporter系统这些部分进行了讲述。
Sqoop 数据迁移 Sqoop 底层还是运行在MapReduce上,通过Yarn进行调度的,只是Sqoop在做数据迁移过程中,只用到了MapTask,没有用到ReduceTask。 Sqoop 是一个数据迁移工具,可以理解为客户端程序,提供HDFS/Hive/HBase 到 RDS(Oracle,Postgrel,MySql等) 数据的导入导出 Sqoop 需要配置到HDFS端,Sqoop从HDFS/Hive/HBase 导出到 RDB时,需要预先 对RDB进行表结构定义,从RDB导出到Hive/HDFS/HBase时不需要对HBase进行表结构定义,对Hive的定义需要指定分隔符等参数. Sqoop需要指定 Hadopp-Home.xml ,MapReduce-HOME.xml,JAVA-HOME 等系统环境变量 类型类型包含 Export,Import Sqoop 在做数据迁移之前,最好测试下 数据连接是否正常,如果运行不正常,方便进行问题定位。 Sqoop 需要参数配置文件 ***.xml, 如果从 RDB 导出数据到 HDFS 指定 RDB驱动,路径,用户名,密码,库及表等信息 如果为 HDFS 需要执行 HDFS 路径,与Hive数据类似 如果为HBase,则需要指定库信息,路径等 如果从 HDFS/Hive/HBase 到RDB时, 指定HDFS,需要指定路径,分割幅等信息,Hive类似 RDB需要指定 驱动名,URL,User,Pwd,库及表
主要是常用的hbase shell命令,包括表的创建与删除,表数据的增删查【hbase没有修改】;以及hbase的导出与导入。
HBase是基于HDFS之上的,也可以采用存储本地模式,HBase是分布式数据库,将数据分为多份,同时是面向列的数据库,是bigtable的实现。
场合:由于线上和测试环境是分离的,无法在测试环境访问线上库,所以需要将线上的hbase表导出一部分到测试环境中的hbase表,这就是本文的由来。
在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字。
Sqoop是一款开源的大数据组件,主要用来在Hadoop(Hive、HBase等)与传统的数据库(mysql、postgresql、oracle等)间进行数据的传递。
HBase是基于Hadoop的分布式的、面向列的、可拓展的开源数据库。当需要对大数据进行随机的、实时的读写时使用HBase。属于NoSQL。HBase利用Hadoop/HDFS作为其文件存储系统,利用Hadoop/MapReduce来处理HBase中的海量数据,利用Zookeeper提供分布式协作、分布式同步、配置管理等。
用户可以在MRS Manager界面上配置监控指标数据对接参数,使集群内各监控指标数据通过FTP或SFTP协议保存到指定的FTP服务器,与第三方系统进行对接。FTP协议未加密数据可能存在安全风险,建议使用SFTP。MRS Manager支持采集当前管理的集群内所有监控指标数据,采集的周期有30秒、60秒和300秒三种。监控指标数据在FTP
Hbase的数据备份策略有: (1)Distcp (2)CopyTable (3)Export/Import (4)Replication (5)Snapshot 下面介绍这几种方式: (一)Distcp(离线备份) 直接备份HDFS数据,备份前需要disable表,在备份完成之前 服务不可用对在线服务类业务不友好 (二)CopyTable(热备) 执行命令前,需要创建表,支持时间区间、row区间,改变表名称,改变列簇名称,指定是否copy删除数据等功能,例如: 三、Export/Import(热备+离线)
Sqoop的输入输出/导入导出是相对于文件系统HDFS的, 因此HDFS的导入导出如图1,图2
有关HBase集群如何做不停服的数据迁移一直都是云HBase被问的比较多的一个问题,目前有许多开源的工具或者HBase本身集成的方案在性能、稳定性、使用体验上都不是很好,因此阿里云提供了BDS迁移服务,可以帮助云上客户实现TB级数据规模不停机迁移
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
我上传到hadoop01这台服务器,因为hadoop01是我的hadoop集群的一个节点,也安装了hive
HBase Snapshots允许你对一个表进行快照(即可用副本),它不会对Region Servers产生很大的影响,它进行复制和 恢复操作的时候不包括数据拷贝。导出快照到另外的集群也不会对Region Servers产生影响。 下面告诉你如何使用Snapshots功能 1.开启快照支持功能,在0.95+之后的版本都是默认开启的,在0.94.6+是默认关闭 <property> <name>hbase.snapshot.enabled</name> <value>true</value
大家好,我是一哥,昨天看到了过往记忆大佬发了一篇文章,才发现Sqoop这个项目最近不咋好,心里很不是滋味,这个帮助过很多开发者的项目,竟然从Apache顶级项目中“下架”了,今天还是想给大家分享介绍一些这个很棒的项目,致敬!
本文的HBase安装是在Hadoop已经安装好的基础上实现的,所以之前要导出JAVA_HOME、HADOOP_HOME( 单机模式不需要,伪分布式模式和分布式模式需要)等环境变量以及配置好SSH互信等。 0 公共配置 导出HBase的环境变量
您可以将 Apache HBase 工作负载从 CDH 和 HDP 迁移到 CDP。要成功迁移 Apache HBase 工作负载,您必须首先了解两个平台之间的数据管理差异,并准备好源数据以与目标 CDP 平台兼容。
昨天我们简单介绍了一下Apache Phoenix,请参考Cloudera Labs中的Phoenix。今天我们主要讲述如何在CDH中安装配置Phoenix,并会做一些使用示例。
CDP 使用 Apache Ranger 进行数据安全管理。如果您希望利用 Ranger 进行集中安全管理,则需要将 HBase ACL 迁移到Ranger策略。这可以通过从 Cloudera Manager 访问的 Ranger webUI 来完成。但首先,让我们快速了解用于访问控制的 HBase 方法。
[喵咪大数据]Hbase搭建和基本使用 说完了Hive我们接着来看另外一个建立在Hadoop基础上的存储引擎HBase,HBase以内存作为缓存数据落地到HDFS的Key-Value数据库,因为使用内
由于最近两次在大数据项目中使用Apache Kudu,写一篇文章谈谈对Kudu的一些看法和使用心得。
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
有赞订单导出业务隶属于有赞交易订单管理组,主要职能是将有赞商家的订单数据通过报表的形式导出并提供下载给商家使用。目前承接了有赞所有的订单导出业务,报表的字段覆盖交易、支付、会员、优惠、发货、退款、特定业务等,合计超过 100 个。
【编者按】对比传统RDBMS领域,NoSQL界的厮杀显然更加激烈。而在这场没有硝烟的战场中,MongoDB和Cassandra无疑是风头最劲的两个产品。但是如果你着眼HBase,各大热门技术(比如Spark、Hadoop)及知名厂商(比如微软、Splice Machine)的支持无疑描绘出一个更美好的未来,下面我们一起看Gigaom Andrew带来的分析。 以下为译文: 在NoSQL数据库领域,统治产品无疑当属MongDB和DataStax Enterprise(一个领先的Apache Cassand
编写本文主要是因为Fayson在上篇文章《0480-如何从HDP2.6.5原地迁移到CDH5.16.1》迁移失败的补充,为什么迁移失败是因为HDP2.6.5的Hadoop版本2.7.5比C5的2.6要高导致的,HDFS只支持升级,而不支持降级。
在NoSQL数据库领域,统治产品无疑当属MongDB和DataStax Enterprise(一个领先的Apache Cassandra发行版)。但近来MongoDB,甚至整个NoSQL数据库市场不断遭受IT业界质疑,认为“大数据时代NoSQL并非颠覆性技术”,MongoDB技术门槛不高,其市场正面临Teradata、MemSQL和Heroku的威胁。这使得很多潜在用户开始担心——MongoDB的成功是否建立在过度的炒作之下。 在Mongo DB遭受质疑的同时, 媒体开始关注一个顽强,但
离线数据分析平台实战——160Sqoop介绍 Sqoop介绍 Apache Sqoop(SQL-to-Hadoop) 是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 一般情况下,是将数据分析的结果导出到关系型数据库中,供其他部门使用。 Sqoop成立于2009年,刚开始是作为hadoop的一个模块而存在的,不过后来为了更好的进行
从上面分析可知,这两种数据在存储方式上完全不同,进而导致使用场景完全不同,但在真实的场景中,边界可能没有那么清晰,面对既需要随机读写,又需要批量分析的大数据场景,该如何选择呢?这个场景中,单种存储引擎无法满足业务需求,我们需要通过多种大数据工具组合来满足这一需求。
HBase 是一个面向列,schemaless,高吞吐,高可靠可水平扩展的 NoSQL 数据库,用户可以通过 HBase client 提供的 put get 等 api 实现在数据的实时读写。在过去的几年里,HBase 有了长足的发展,它在越来越多的公司里扮演者越来越重要的角色。同样的,在有赞 HBase 承担了在线存储的职责,服务了有赞用户,商品详情,订单详情等核心业务。HBase 擅长于海量数据的实时读取,但软件世界没有银弹,原生 HBase 没有二级索引,复杂查询场景支持的不好。同时因为 split,磁盘,网络抖动,Java GC 等多方面的因素会影响其 RT 表现,所以通常我们在使用HBase的同时也会使用其他的存储中间件,比如 ES,Reids,Mysql 等等。避免 HBase 成为信息孤岛,我们需要数据导入导出的工具在这些中间件之间做数据迁移,而最常用的莫过于阿里开源的 DataX。Datax从 其他数据源迁移数据到 HBase 实际上是走的 HBase 原生 api 接口,在少量数据的情况下没有问题,但当我们需要从 Hive 里,或者其他异构存储里批量导入几亿,几十亿的数据,那么用 DataX 这里就显得不那么适合,因为走原生接口为了避免影响生产集群的稳定性一定要做好限流,那么海量数据的迁移就很很慢,同时数据的持续写入会因为 flush,compaction 等机制占用较多的系统资源。为了解决批量导入的场景,Bulkload 应运而生。
平时用于从生产环境hbase到导出数据到测试环境。 导入数据: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.S
当您需要对大数据进行随机、实时的读写访问时,请使用Apache HBase™。这个项目的目标是在商用硬件集群上托管非常大的表——数十亿行X数百万列。Apache HBase是一个开源的、分布式的、版本化的、非关系型的数据库,它模仿了Chang等人的谷歌的Bigtable: A distributed Storage System for Structured Data。正如Bigtable利用了谷歌文件系统提供的分布式数据存储,Apache HBase在Hadoop和HDFS上提供了类似Bigtable的功能。
Hadoop 目前是数据处理的标准工具,其核心组件包含了HDFS(分布式文件系统)、YARN(资源调度平台)、
这篇博客文章概述了OpDB的NoSQL、组件集成和对象存储支持功能。这些详细信息将帮助应用程序架构师了解Cloudera的运营数据库的灵活NoSQL(No Schema)功能,以及它们是否满足正在构建的应用程序的要求。
Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易。Apache Sqoop正在加紧帮助客户将重要数据从数据库移到Hadoop。随着Hadoop和关系型数据库之间的数据移动渐渐变成一个标准的流程,云管理员们能够利用Sqoop的并行批量数据加载能力来简化这一流程,降低编写自定义数据加载脚本的需求。
今天我们来看一下淘宝、美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另一方面也学习大厂的工程师如何画架构图。通过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小异,架构图的画法也有套路可以寻觅。
Sqoop 是一款开源的工具,主要用于在 Hadoop(Hive) 与传统的数据库 (mysql,postgresql,...) 间进行数据的高校传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导入到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。 Sqoop 项目开始于 2009 年,最早是作为 Hadoop 的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop 独立成为一个 Apache 顶级项目。 Sqoop2 的最新版本是 1.99.7。请注意,2 与 1 不兼容,且特征不完整,它并不打算用于生产部署。
Sqoop (SQL to Hadoop) 是Apache顶级项⽬,官⽹地址:http://sqoop.apache.org.
领取专属 10元无门槛券
手把手带您无忧上云