首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Hbase查询的HBase表

来自Hbase查询的HBase表
EN

Stack Overflow用户
提问于 2015-08-29 00:14:26
回答 5查看 597关注 0票数 0

有没有什么办法我们可以创建一个Hbase表作为hbase查询的输出?假设我有一个巨大的hbase表,然后我使用filter查询hbase表。我想把结果存储回Hbase表中。有可能吗?

EN

回答 5

Stack Overflow用户

发布于 2017-06-05 17:45:17

您可以拍摄正在运行的Hbase表的快照,并将其导出到HDFS。编写Mapreduce以获取文件中的数据,然后批量加载到新的Hbase表中。您也可以直接将数据写入Hbase表中。这样,在快照上运行MapReduce也不会影响实际的Hbase表。这是您可以执行下面提到的所有步骤的方法

创建快照

代码语言:javascript
复制
snapshot 'HbaseTable','HbaseTableSnapshot'

将快照导出到本地hdfs

代码语言:javascript
复制
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot HbaseTableSnapshot-copy-to /tmp -mappers 16

到Hbase快照上的rum mapreduce的驱动程序作业配置

代码语言:javascript
复制
    String snapshotName="HbaseTableSnapshot";
    Path restoreDir = new Path("hdfs://quickstart.cloudera:8020/tmp");
    String  hbaseRootDir =  "hdfs://quickstart.cloudera:8020/hbase";

TableMapReduceUtil.initTableSnapshotMapperJob(snapshotName, // Snapshot name
                    scan, // Scan instance to control CF and attribute selection
                    DefaultMapper.class, // mapper class
                    NullWritable.class, // mapper output key
                    Text.class, // mapper output value
                    job,
                    true,
                    restoreDir);

此外,在Hbase快照上运行mapreduce将跳过对Hbase表的扫描,并且不会影响区域服务器。

票数 1
EN

Stack Overflow用户

发布于 2015-09-01 02:21:19

您可以使用hbase作为map reduce的源和宿。我希望this能帮助你。请参阅7.2.4部分。由于您将并行编写put作为输出,因此时间也得到了优化。

票数 0
EN

Stack Overflow用户

发布于 2015-11-26 20:44:15

您可以编写一个作业,将其作为keyValue对从第一个表中读取,然后将其持久化到第二个表中。

如果您对性能感到担忧?然后,您可以编写一个map reduce作业来执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32275474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档