【问题标题】:HBase Incremental Backup failed on HDPHBase 增量备份在 HDP 上失败
【发布时间】:2017-06-14 13:55:34
【问题描述】:

在 HBase 中创建了一个“测试”表来测试 HDP 上的增量备份功能。

    hbase(main):002:0> create 'test', 'cf'
    0 row(s) in 1.4690 seconds

    hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
    0 row(s) in 0.1480 seconds

    hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
    0 row(s) in 0.0070 seconds

    hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
    0 row(s) in 0.0120 seconds

    hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value4'
    0 row(s) in 0.0070 seconds

    hbase(main):010:0> scan 'test'       
    ROW                   COLUMN+CELL                                               
    row1                 column=cf:a, timestamp=1317945279379, value=value1        
    row2                 column=cf:b, timestamp=1317945285731, value=value2        
    row3                 column=cf:c, timestamp=1317945301466, value=value4        
    3 row(s) in 0.0250 seconds

现在我已经成功使用下面的完整备份了

hbase backup create full hdfs://12.3.4.56:8020/tmp/full test -w 3

现在我想在上面的“test”表上测试“incremetal”备份。所以我做了什么:

put 'test', 'row123', 'cf:a', 'newValue'

现在当我执行以下操作时,它会失败

hbase backup create incremental hdfs://12.3.4.56:8020/tmp/full

错误:

Backup session finished. Status: FAILURE
2017-06-14 09:52:58,853 ERROR [main] util.AbstractHBaseTool: Error running command-line tool
org.apache.hadoop.ipc.RemoteException(java.lang.NullPointerException):
        at org.apache.hadoop.hbase.backup.master.FullTableBackupProcedure.cleanupTargetDir(FullTableBackupProcedure.java:205)
        at org.apache.hadoop.hbase.backup.master.FullTableBackupProcedure.failBackup(FullTableBackupProcedure.java:279)
        at org.apache.hadoop.hbase.backup.master.IncrementalTableBackupProcedure.executeFromState(IncrementalTableBackupProcedure.java:164)
        at org.apache.hadoop.hbase.backup.master.IncrementalTableBackupProcedure.executeFromState(IncrementalTableBackupProcedure.java:54)
        at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:107)
        at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:443)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:934)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:736)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:689)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$200(ProcedureExecutor.java:73)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$1.run(ProcedureExecutor.java:416)

更新:

在下面的链接中提到“备份和恢复应该以 hbase 超级用户(默认情况下称为“hbase”)运行。这是什么意思?我只是从一个简单的用户运行上述返回命令root 权限。请提出建议。

https://hortonworks.com/blog/coming-hdp-2-5-incremental-backup-restore-apache-hbase-apache-phoenix/

我尝试更改 hdfs 文件的权限(tmp/full),但没有用。

【问题讨论】:

  • 您能否告诉我们我们正在尝试遵循的 hbase 和 hadoop 版本,但出现错误“找不到备份类”

标签: hadoop hbase backup hortonworks-data-platform


【解决方案1】:

我使用的是 Kerberos,所以在将 kinit 作为运行 hbase 的主体后,增量备份对我有用。

如果您不使用 Kerberos,请先切换到 HBase 用户(例如 'su - hbase')。

【讨论】:

  • 对于非 Kerberized 集群,不需要su -- 只需设置一个环境变量:export HADOOP_USER_NAME=hbase
猜你喜欢
  • 1970-01-01
  • 2017-05-05
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
相关资源
最近更新 更多