【问题标题】:How to copy Hbase data to local file system (external drive)如何将 Hbase 数据复制到本地文件系统(外部驱动器)
【发布时间】:2014-09-18 07:21:35
【问题描述】:

我想要备份 hdfs 中的 hbase 数据。我有一个外部驱动器(USB 硬盘)。如何将数据从 hbase 复制到我的驱动器。我使用了类似的命令

bin/hbase org.apache.hadoop.mapreduce.Drive 导出表/media/.../mydrive.

但实际上做了什么,在 hdfs 中创建了一个路径为 /media/.../mydrive 的新目录,并且没有任何内容保存在我的外部硬盘中。为什么是这个问题。除了我上面使用的命令之外,有没有办法通知数据应该保存在我的外部驱动程序中。

请回复

【问题讨论】:

    标签: file hadoop hbase


    【解决方案1】:

    如果数据在 hdfs 中,您可以使用以下命令将数据从 hdfs 复制到本地,然后从本地系统复制,您可以对数据做任何您想做的事情。

    hadoop fs -get path_of_hdfs_system_where_your_data_is  path_of_local_file_system
    

    例如:

    hadoop fs -get /user/hive/warehouse/rocky.db/test5_bucket/000002_0 /home/yarn
    hadoop fs -copyToLocal /user/hive/warehouse/rocky.db/test5_bucket/000002_0 /home/yarn
    

    【讨论】:

    • 我需要使用 hbase 命令复制数据,因为稍后我必须将我首先导出的表导入回来。 hadoop 命令是不可能的。我可以导出或导入数据,但是当我将数据导出回 hbase 时,什么也没有出现。所以它不是写答案
    • 您没有指定要再次加载到hbase中,您说要从hbase备份到外部。可以使用import,import是一个实用程序,它将加载已导出的数据回到 HBase。调用方式: $ bin/hbase org.apache.hadoop.hbase.mapreduce.Import 要在 0.96 集群或更高版本中导入 0.94 导出的文件,您需要在以下情况下设置系统属性“hbase.import.version”运行导入命令如下:导入供您使用。例如: $ bin/hbase -Dhbase.import.version=0.94 org.apache.hadoop.hbase.mapreduce.Import
    • 兄弟您的上述指南是正确的,但首先我必须导出数据。您在上面告知的方法无效,因为我在这里讨论过stackoverflow.com/questions/25909132/… 所以请仔细阅读我对这两个问题的问题陈述。然后回答。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2020-07-18
    • 2023-01-24
    • 2013-07-24
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多