Heim Datenbank MySQL-Tutorial HBase 增量备份

HBase 增量备份

Jun 07, 2016 pm 05:27 PM
hbase o 数据库

文中可能涉及到的API: Hadoop/HDFS:http://hadoop.apache.org/common/docs/current/api/ HBase: http://hbase.apache.org/apido

文中可能涉及到的API:

Hadoop/HDFS:

HBase: ?overview-summary.html

Begin!

一、概述

使用了HBase提供的Export与Import工具。

Export:

Import:

看到这两个类所在目录我们了解到,Export与Import的实质是MapReduce任务。

关于这两个工具API中写的很清楚:

Export an HBase table. Writes content to sequence files up in HDFS. Use Import to read it back in again.

将HBase的表导出为HDFS的sequence files。

Export如其名,只是导出工具,如何完成备份功能呢?

 

二、功能实验

测试过程涉及很多数据,这里仅提供重要结论:

1、Export是以表为单位导出数据的,若想完成整库的备份需要执行n遍。

2、Export在shell中的调用方式类似如下格式:

./hbase org.apache.hadoop.hbase.mapreduce.Export 表名 备份路径 (版本号) (起始时间戳) (结束时间戳)

Export [-D ]* [ [ []]]

括号内为可选项,例如

./hbase org.apache.hadoop.hbase.mapreduce.Export 'contentTbl' /home/codeevoship/contentBackup20120920 1 123456789

备份contentTbl这张表到/home/codeevoship/contentBackup20120920目录下(最后一级目录必须由Export自己创建),,版本号为1,备份记录从123456789这个时间戳开始到当前时间内所有的执行过put操作的记录。

注意:为什么是所有put操作记录?因为在备份时是扫描所有表中所有时间戳大于等于123456789这个值的记录并导出。如果是delete操作,则表中这条记录已经删除,扫描时也无法获取这条记录信息。

3、当不指定时间戳时,备份的就是当前完整表中的数据。

 

三、实施细节

1、如何在增量备份时体现出对数据的删除操作?

由于Export按时间戳备份只能反映出Put过的表项,若我在一个备份(增量包)时间区间内删除了某条已有记录,当数据库回档时,这条被删除的记录又会出现在我的表中。

因此,我将所有的删除操作替换为Put操作:

a、给每行数据添加了一个无效标志位,在删除记录时使用Put给该标志位写为1。

b、在单条查询时,根据rowKey取出记录后会根据这个标志位判断这条记录是否已被“删除”,以此决定是否返回这条记录。在多条查询时(scan),使用列值过滤器,过滤出所有这个标志位不为1的记录。(可参见我之前的《HBase 条件查询》  )

2、在备份过程中新增的数据是否会影响备份内容的准确性?

可以指定小于等于当前时刻的结束时间戳,以便将需要备份的数据范围明确。

 

3、如何备份到其他机器?

a、Export支持提供地址的备份。最简单的方法,直接把远端存储挂载到本地,然后使用本地路径。

b、使用API调用时,Path如果使用file:///home/codeevoship/backup,代表使用本地文件系统。若直接写为/home/codeevoship 代表使用HDFS层的路径。在使用Shell调用时则相反。

4、如何使用API调用?

通过MapReduce的Job:

先通过Export类提供的方法创建Job实例,再调用Job的()或(boolean verbose);异步与同步。

 

四、其他解决方案

1、HDFS层的HDFS Replication或DistCp

2、Cluster Replication

linux

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen Jul 18, 2024 am 05:48 AM

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Umgang mit Datenbankverbindungsfehlern in PHP Umgang mit Datenbankverbindungsfehlern in PHP Jun 05, 2024 pm 02:16 PM

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

Wie verwende ich Datenbank-Callback-Funktionen in Golang? Wie verwende ich Datenbank-Callback-Funktionen in Golang? Jun 03, 2024 pm 02:20 PM

Durch die Verwendung der Datenbank-Rückruffunktion in Golang kann Folgendes erreicht werden: Ausführen von benutzerdefiniertem Code, nachdem der angegebene Datenbankvorgang abgeschlossen ist. Fügen Sie benutzerdefiniertes Verhalten durch separate Funktionen hinzu, ohne zusätzlichen Code zu schreiben. Rückruffunktionen stehen für Einfüge-, Aktualisierungs-, Lösch- und Abfragevorgänge zur Verfügung. Sie müssen die Funktion sql.Exec, sql.QueryRow oder sql.Query verwenden, um die Rückruffunktion verwenden zu können.

Wie verbinde ich mich mit Golang mit einer Remote-Datenbank? Wie verbinde ich mich mit Golang mit einer Remote-Datenbank? Jun 01, 2024 pm 08:31 PM

Über das Datenbank-/SQL-Paket der Go-Standardbibliothek können Sie eine Verbindung zu Remote-Datenbanken wie MySQL, PostgreSQL oder SQLite herstellen: Erstellen Sie eine Verbindungszeichenfolge mit Datenbankverbindungsinformationen. Verwenden Sie die Funktion sql.Open(), um eine Datenbankverbindung zu öffnen. Führen Sie Datenbankoperationen wie SQL-Abfragen und Einfügeoperationen durch. Verwenden Sie „defer“, um die Datenbankverbindung zu schließen und Ressourcen freizugeben.

Wie gehe ich mit Datenbankverbindungen und -operationen mit C++ um? Wie gehe ich mit Datenbankverbindungen und -operationen mit C++ um? Jun 01, 2024 pm 07:24 PM

Verwenden Sie die DataAccessObjects (DAO)-Bibliothek in C++, um die Datenbank zu verbinden und zu betreiben, einschließlich der Einrichtung von Datenbankverbindungen, der Ausführung von SQL-Abfragen, dem Einfügen neuer Datensätze und der Aktualisierung vorhandener Datensätze. Die spezifischen Schritte sind: 1. Erforderliche Bibliotheksanweisungen einschließen; 3. Ein Recordset-Objekt erstellen, um SQL-Abfragen auszuführen oder Daten zu bearbeiten; 4. Die Ergebnisse durchlaufen oder Datensätze entsprechend den spezifischen Anforderungen aktualisieren;

Wie lässt sich Go WebSocket in Datenbanken integrieren? Wie lässt sich Go WebSocket in Datenbanken integrieren? Jun 05, 2024 pm 03:18 PM

So integrieren Sie GoWebSocket in eine Datenbank: Richten Sie eine Datenbankverbindung ein: Verwenden Sie das Datenbank-/SQL-Paket, um eine Verbindung zur Datenbank herzustellen. Speichern Sie WebSocket-Nachrichten in der Datenbank: Verwenden Sie die INSERT-Anweisung, um die Nachricht in die Datenbank einzufügen. WebSocket-Nachrichten aus der Datenbank abrufen: Verwenden Sie die SELECT-Anweisung, um Nachrichten aus der Datenbank abzurufen.

Wie installiere und registriere ich die BTC Trading App? Wie installiere und registriere ich die BTC Trading App? Feb 21, 2025 pm 07:09 PM

Dieser Artikel enthält eine detaillierte Einführung in die Installation und Registrierung einer Bitcoin -Handelsanwendung. Mit der Bitcoin Trading App können Benutzer Kryptowährungen wie Bitcoin verwalten und handeln. Der Artikel führt die Benutzer Schritt für Schritt durch den Installations- und Registrierungsprozess, einschließlich Herunterladen von Anwendungen, Erstellen von Konten, Durchführung der Identitätsprüfung und der ersten Einzahlung. Ziel des Artikels ist es, Anfängern klare und leicht verständliche Richtlinien zu geben, um ihnen zu helfen, die Welt des Bitcoin-Handels leicht zu betreten.

See all articles