使用BulkLoad恢复hbase数据
问题:
hbase 集群启动不了,maste一直在初始化,数据面临丢失风险。
解决:
把hbfs上 /hbase 目录移走 改名为/hbase-bak
删除zk上的数据,重新建立一个新的hbase集群.
使用如下代码, 把/hbase-bak里面的数据恢复到 现有的hbase集群中.
public class RestoreData {
public static final String HBASE_ZOOKEEPER_QUORUM = "hbase.zookeeper.quorum";
public static final String HBASE_CLIENT_RETRIES_NUMBER = "hbase.client.retries.number";
public static final String HBASE_MASTER_INFO_PORT = "hbase.master.info.port";
public static final String HBASE_ZOOKEEPER_PROPERTY_CLIENTPORT = "hbase.zookeeper.property.clientPort";
public static final String HBASE_RPC_TIMEOUT = "hbase.rpc.timeout";
public static final String HBASE_CLIENT_OPERATION_TIMEOUT = "hbase.client.operation.timeout";
public static final String HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD = "hbase.client.scanner.timeout.period";
public static final String HBASE_WRITEBUFFER_SIZE = "hbase.writebuffer.size";
private static Connection hbaseConn;
private static Configuration hbaseConf;
public static void main(String[] args) throws IOException {
hbaseConf = HBaseConfiguration.create();
hbaseConf.set(HBASE_ZOOKEEPER_QUORUM, "master");
hbaseConf.set(HBASE_ZOOKEEPER_PROPERTY_CLIENTPORT, "2181");
hbaseConf.set(HBASE_RPC_TIMEOUT, "30000");
hbaseConf.set(HBASE_CLIENT_OPERATION_TIMEOUT, "30000");
hbaseConf.set(HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD, "30000");
hbaseConn = ConnectionFactory.createConnection(hbaseConf);
String hfile = "hdfs://master:9000/hbase-bak/data/default/student/ab4112439aee7a2dea88f1b5119f0f4d";
String tableName = "student";
String[] array = new String[2];
array[0] = hfile;
array[1] = tableName;
try {
new LoadIncrementalHFiles(hbaseConf).run(array);
} catch (Exception e) {
e.printStackTrace();
}
}
}
pom文件
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.4.13</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.4.13</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>1.4.13</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.8.3</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-hadoop2-compat</artifactId>
<version>1.4.13</version>
</dependency>
</dependencies>
打包
脚本
在集群上运行的脚本
export LD_LIBRARY_PATH=/data/hadoop-2.8.3/lib/native
java -cp /data/hadoop/data/hbase_production.jar\
:/data/hbase/lib/log4j-1.2.17.jar\
:/data/hbase/lib/slf4j-log4j12-1.7.25.jar\
:/data/hbase/lib/slf4j-api-1.7.25.jar\
:/data/hbase/lib/snappy-java-1.0.5.jar\
:/data/hadoop-2.8.3/share/hadoop/common/hadoop-nfs-2.8.3.jar\
:/data/hadoop-2.8.3/share/hadoop/common/hadoop-common-2.8.3.jar\
com.xxxx.hbase.RestoreData \
hdfs://master:9000/hbase-bak/data/default/student/$1 \
student
执行
./脚本 HFile路径
也可用于hbase 备份.
使用BulkLoad恢复hbase数据的更多相关文章
- 使用bulkload向hbase中批量写入数据
1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M r ...
- HBase数据备份及恢复(导入导出)的常用方法
一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...
- HBase BulkLoad批量写入数据实战
1.概述 在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据.使用Sqoop工具批量导数到HBase集群.使用MapReduce批量导入等.这些方式, ...
- HBase 数据迁移方案介绍
一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...
- HBase 数据迁移方案介绍 (转载)
原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览
一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...
- HBase 数据迁移方案介绍(转载)
原文链接:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- 4.HBASE数据迁移方案(之snapshot):
4.HBASE数据迁移方案: 4.1 Import/Export 4.2 distcp 4.3 CopyTable 4.4 snapshot 快照方式迁移(以USER_info:user_lo ...
- HBase 数据迁移
最近两年负责 HBase,经常被问到一些问题, 本着吸引一些粉丝.普及一点HBase 知识.服务一点阅读人群的目的,就先从 HBase 日常使用写起,后续逐渐深入数据设计.集群规划.性能调优.内核源码 ...
随机推荐
- FL Studio20效果器Fruity Reverb 2功能介绍
FL Studio,也就是我梦通常所说的水果音乐制作软件,是一款新手就可以用的软件.其操作简单,界面简洁大方,就算只用鼠标也可以轻松编曲. FL Studio20中有许多自带合成器是很好用的,同时也是 ...
- FL Studio中如何制作和混音Dutch Lead(上)
Dutch Lead是电子音乐类型Dutch House以及Bigroom House中常用的Lead音色,这一篇文章中我将从制作和混音两方面来讲解Dutch Lead. (一).Dutch Lead ...
- 【PUPPETEER】初探之原生frame切换(四)
一.知识点 page.frames() 使用frame.url() 获取framed的url x.getAttribute('x') 获取元素内值 二.实例 问:什么是iframe? 答:iframe ...
- jmeter脚本的编写
前几天讲到了性能测试的入门,今日继续来讲解jmeter的使用,本文讲的都是比较细,希望各位耐心的看完. 一.jmeter的安装与打开 前提条件:给大家一个jmeter的安装包 百度网盘的路径如下:链 ...
- 理解go语言的shellcode加载器
序言 本文假设你知道unsafe包常见函数的用法,若否,请查看 https://books.studygolang.com/gopl-zh/ch13/ch13-01.html 第13章. 例子和代码 ...
- [LGOJ1273]有线电视网
solution 用了一个很有意思的转移方法. $dp[i][j] $ 表达 \(i\) 作为根,\(j\)个终端时最大的收益,即钱数,当\(0\leq dp[1][i]\)时,即以1为根可以转移到\ ...
- H5 ,Css实现了你的logo
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 【模版 Luogu P3808/P3796/P5357】AC自动机(简论)
浙江集训Day9,没有出任何实质性成果,只好把昨天打完的板子记一下. 该博客基于luogu的三道模版题.只有一个大致的讲解,主要提供代码给自己参考. ------------------------- ...
- Java基础教程——接口
接口 接口只是一种约定.--Anders 接口定义了一种规范--多个类共同的公共行为规范. 对于接口的实现者--规定了必须向外提供哪些服务 对于接口的调用者--规定了可以调用哪些服务,如何调用这些服务 ...
- 用微信表情翻译表白,程序员的小浪漫,赶紧Get起来!