gpt4 book ai didi

mapreduce - 写入HBASE中的多个表

转载 作者:行者123 更新时间:2023-12-03 06:48:27 25 4
gpt4 key购买 nike

我遇到这样的情况,我需要写入两个 hbase 表,例如表 1、表 2。每当表 1 上发生写入时,我需要对表 2 执行一些操作,例如增加表 2 中的计数器(比如触发)。为此,我需要在映射缩减程序的同一任务中访问(写入)两个表。我听说可以使用 MultiTableOutputFormat 来完成。但我找不到任何详细解释的好例子。请有人回答是否可以这样做。如果是这样我可以/应该怎么做。提前致谢。

请给我一个不应包含协处理器的答案。

最佳答案

要在map-reduce作业中写入多个表,您必须在作业配置中指定。你是对的,这可以使用 MultiTableOutputFormat 来完成。通常对于单个表,您使用如下:

TableMapReduceUtil.initTableReducerJob("tableName", MyReducer.class, job);

而不是这样写:

job.setOutputFormatClass(MultiTableOutputFormat.class);
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class);
job.setNumReduceTasks(2);
TableMapReduceUtil.addDependencyJars(job);
TableMapReduceUtil.addDependencyJars(job.getConfiguration());

现在在表中写入数据时写为:

context.write(new ImmutableBytesWritable(Bytes.toBytes("tableName1")),put1);
context.write(new ImmutableBytesWritable(Bytes.toBytes("tableName2")),put2);

关于mapreduce - 写入HBASE中的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com