如何将一些数据发送到 Mapper class(运行 在 HBase 数据库中的数据)

How to send some data to Mapper class (running on data in a HBase database)

我需要为 HBase 中节点上的映射器作业 运行ning 发送一些信息。我已经在 class 中将数据定义为静态成员,但似乎当映射器在其他节点上 运行 时,数据没有传输到节点。有什么办法吗?

public class GetResultFromVerticesIDMapper extends TableMapper< ResultVal, IntWritable > {

    public static HashMap<Long, Boolean> vertexIDsHashMap;
    public static int                    nResultComponents;

...
}

我通过向配置发送参数来做到这一点:

Configuration conf;
conf.addResource(new Path(hbaseConfigurationFile));
conf.set("simplificationParameters", simpParameters.toString());

并将它们放入映射器 class,如下所示:

_simplificationParameters.fromString(context.getConfiguration().get("simplificationParameters"));

上面你提到的方法是一种方法.. 否则,如果您发送系统属性,那么它将自动设置为上下文。

而 运行 您可以将参数作为系统属性传递给程序(使用 -D 选项)或接受输入并使用 System.setProperty("simplificationParameters","user_entered_input")

设置它们

您可以像在回答中那样在映射器或缩减器中将其取回...即 context.getConfiguration().get("simplificationParameters")