我们是否可以创建一个hbase表作为hbase查询的输出?假设我有一个巨大的hbase表,然后使用filter查询hbase表。我想把结果存储回hbase表。有可能吗?
wwwo4jvm1#
您可以编写一个作业,将其作为键值对从第一个表中读取,然后将其持久化到第二个表中。如果你关心表演的话?然后你可以写一个Map缩小作业来做这个。
iswrvxsc2#
不能直接查询hbase并在其中创建另一个包含输出的表,但可以编写map reduce来执行相同的操作。除了map reduce之外,如果您在hbase上使用apachephoenix,那么您将能够编写一个查询来选择数据并将其存储到hbase表中。
eivgtgni3#
聪明又好的主意。。。您可以使用happybase来实现这一点,happybase是我们在生产服务中使用的python前端。然而,如果你真的在谈论1亿以上的返回值-我不建议这样做。高达1000-2000万条记录您可以获得良好的吞吐量(我们平均每秒插入8k条记录)。停机坪0.5m/min)。
xbp102n04#
可以使用hbase作为map reduce的源和汇。我希望这对你有帮助。参见7.2.4节。由于您将编写put作为并行输出,因此时间也得到了优化。
gojuced75#
您可以拍摄正在运行的hbase表的快照并将其导出到hdfs。编写mapreduce以获取文件中所需的数据,然后批量加载到新的hbase表。您也可以直接将数据写入hbase表。这样,在快照上运行mapreduce也不会影响实际的hbase表。下面提到的所有步骤都是这样做的创建快照
snapshot 'HbaseTable','HbaseTableSnapshot'
将快照导出到本地hdfs
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot HbaseTableSnapshot-copy-to /tmp -mappers 16
hbase快照上rum mapreduce的驱动程序作业配置
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表的扫描,并且不会影响区域服务器。
5条答案
按热度按时间wwwo4jvm1#
您可以编写一个作业,将其作为键值对从第一个表中读取,然后将其持久化到第二个表中。
如果你关心表演的话?然后你可以写一个Map缩小作业来做这个。
iswrvxsc2#
不能直接查询hbase并在其中创建另一个包含输出的表,但可以编写map reduce来执行相同的操作。除了map reduce之外,如果您在hbase上使用apachephoenix,那么您将能够编写一个查询来选择数据并将其存储到hbase表中。
eivgtgni3#
聪明又好的主意。。。
您可以使用happybase来实现这一点,happybase是我们在生产服务中使用的python前端。
然而,如果你真的在谈论1亿以上的返回值-我不建议这样做。高达1000-2000万条记录您可以获得良好的吞吐量(我们平均每秒插入8k条记录)。停机坪0.5m/min)。
xbp102n04#
可以使用hbase作为map reduce的源和汇。我希望这对你有帮助。参见7.2.4节。由于您将编写put作为并行输出,因此时间也得到了优化。
gojuced75#
您可以拍摄正在运行的hbase表的快照并将其导出到hdfs。编写mapreduce以获取文件中所需的数据,然后批量加载到新的hbase表。您也可以直接将数据写入hbase表。这样,在快照上运行mapreduce也不会影响实际的hbase表。下面提到的所有步骤都是这样做的
创建快照
将快照导出到本地hdfs
hbase快照上rum mapreduce的驱动程序作业配置
另外,在hbase快照上运行mapreduce将跳过对hbase表的扫描,并且不会影响区域服务器。