如何将一些数据发送到 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")
我需要为 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")