Java 如何在HbaseMapReduce作业中为表提供名称空间

Java 如何在HbaseMapReduce作业中为表提供名称空间,java,hadoop,mapreduce,hbase,Java,Hadoop,Mapreduce,Hbase,我正在使用Hbase创建Map Reduce Jon。所以我在mapper作业中从表中获取一些输入,然后使用Reducer作业。要调用减速机作业,我正在使用此函数 TableMapReduceUtil.initTableReducerJob(table, reducer, job); 这里的表格是字符串类型。我的问题是,我需要在这里使用名称空间为的表,但我不知道如何做到这一点 如果是制图员工作。Api正在为命名空间提供函数,即 TableMapReduceUtil.initTableMappe

我正在使用Hbase创建Map Reduce Jon。所以我在mapper作业中从表中获取一些输入,然后使用Reducer作业。要调用减速机作业,我正在使用此函数

TableMapReduceUtil.initTableReducerJob(table, reducer, job);
这里的表格是字符串类型。我的问题是,我需要在这里使用名称空间为的表,但我不知道如何做到这一点

如果是制图员工作。Api正在为命名空间提供函数,即

TableMapReduceUtil.initTableMapperJob(table, scan, mapper, outputKeyClass, outputValueClass, job);
这里的表是org.apache.hadoop.hbase.TableName类型


那么,有人能告诉我在reducer作业中如何执行此操作吗?

我知道您想使用mapreduce作业读取hbase表并将一些数据写入hdfs吗?如果是的话 看这里

    void org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob
    (String table, Scan scan, Class<? extends TableMapper> mapper, 
Class<?>     outputKeyClass,
     Class<?> outputValueClass, Job job, boolean addDependencyJars) throws IOException
使用这些方法可以使减速器连接到hdfs

顺便说一下,从一个hbase表转换到另一个hbase表您可以使用导入或导出命令

比如说

  (1)old cluster:./hbase org.apache.hadoop.hbase.mapreduce.Export test hdfs://new cluster ip:9000/dic/test
  (2)new cluster:./hbase org.apache.hadoop.hbase.mapreduce.Import test hdfs://new cluster ip:9000/dic/test

所以,我只需要提供表名作为

名称空间:tablename


它会在内部处理

我想从一个表中获取数据,并在处理后将该数据复制到另一个表中。这些表在特定的名称空间中。所以在reducer作业中,我将如何说我希望将数据写入具有此命名空间的表
  (1)old cluster:./hbase org.apache.hadoop.hbase.mapreduce.Export test hdfs://new cluster ip:9000/dic/test
  (2)new cluster:./hbase org.apache.hadoop.hbase.mapreduce.Import test hdfs://new cluster ip:9000/dic/test