在MapReduce作业中创建一次HbaseConfiguration

时间:2014-03-05 16:44:15

标签: hadoop mapreduce hbase

我正在java中编写map-reduce作业。 我想使用外部表来编写hbase增量对象。 为此,我正在创建新的HbaseConfiguration。 我希望能够创建一次并在所有映射器中使用。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

作为上下文的一部分,作业配置已经传递给映射器(和减速器)。您可以使用它访问任何HBase表。

Job job = new Job(HbaseConfiguration.create(), ...);
/* ... Rest of the job setup ... */
job.waitForCompletion(true);

在您的映射器设置方法中:

Configuration config = context.getConfiguration();
HTable mytable = new HTable(config, "my_table_name");
....

您甚至可以发送自定义参数或参数,以便可以实例化映射器上可能需要的任何类型的对象:

Configuration config = HbaseConfiguration.create();
config.set("myStringParam", "customValue");
config.setStrings("myStringsParam", "customValue1", "customValue2", "customValue3");
config.setBoolean("myBooleanParam", true);
Job job = new Job(config, ...);
/* ... Rest of the job setup ... */
job.waitForCompletion(true);

在您的映射器设置方法中:

Configuration config = context.getConfiguration();
String myStringParam = config.get("myStringParam");
String myBooleanParam = config.get("myBooleanParam");
顺便说一句:我不知道为什么这个问题会有这么多的问题,这不是一个坏问题。