我正在使用Hbase创建Map Reduce Jon。所以我从mapper作业中的表中获取一些输入,然后我使用Reducer Job。要调用reducer Job,我正在使用此函数。
TableMapReduceUtil.initTableReducerJob(table, reducer, job);
此表为Type String。我的问题是我需要在这里使用带有命名空间的表,我不知道该怎么做。
如果是mapper Job。 Api为NameSpace提供功能,即
TableMapReduceUtil.initTableMapperJob(table, scan, mapper, outputKeyClass, outputValueClass, job);
此表的类型为org.apache.hadoop.hbase.TableName。
那么有人能告诉我如何在减速机工作中这样做吗?
答案 0 :(得分:0)
我说你想使用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
此方法可以在设置中添加您的作业(org.apache.hadoop.mapreduce.Job;
)。
job.setJarByClass(MapReduceReaderHbaseDriver.class);
job.setReducerClass(WordCountHBaseReducer.class);
FileOutputFormat.setOutputPath(job, new Path("hdfspath"));
使用这些方法可以使reducer连接到hdfs
BTW从一个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
答案 1 :(得分:0)
所以,我只需要提供表名为
<强>名称空间:表名强>
它将在内部处理它。