hadoop - 来自 HBase 查询的 Hbase 表

标签 hadoop mapreduce hbase hdfs

我们是否可以创建一个 Hbase 表作为 hbase 查询的输出?假设我有一个巨大的 hbase 表,然后我使用过滤器查询 hbase 表。我想将结果存储回 Hbase 表中。可能吗?

最佳答案

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

创建快照

snapshot 'HbaseTable','HbaseTableSnapshot'

导出快照到本地hdfs

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot HbaseTableSnapshot-copy-to /tmp -mappers 16

Driver Job Configuration to rum mapreduce on Hbase snapshot

    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 表的扫描,并且也不会对区域服务器产生影响。

关于hadoop - 来自 HBase 查询的 Hbase 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275474/

相关文章:

使用 log4j 的 Hadoop Yarn 任务级日志记录

java - Jobtracker API 错误 - 调用 localhost/127.0.0.1 :50030 failed on local exception: java. io.EOFException

hadoop - Map 和 Reduce 是否在单独的 JVM 中运行?

hadoop - YARN接受后,MapReduce作业失败

hadoop - 使用 pyspark 流式传输到 HBase

Hbase 根据列和时间戳过滤行

.net - 在 .NET 中使用 Thrift 在 Hbase 上进行 MapReduce?

hadoop - phoenix hbase 表预拆分,同一区域有多个拆分点

java - 通过 Intellij IDEA 运行 Hadoop MR 作业

hadoop - 我怎样才能做到这一点而不必一张一张地导入表格?