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