有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在HbaseMapReduce作业中提供带有表的名称空间

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

TableMapReduceUtil.initTableReducerJob(table, reducer, job);

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

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

TableMapReduceUtil.initTableMapperJob(table, scan, mapper, outputKeyClass, outputValueClass, job);

这里的表是org类型的。阿帕奇。hadoop。hbase。表名

有人能告诉我在减速机工作中如何做到这一点吗


共 (2) 个答案

  1. # 1 楼答案

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

    名称空间:tablename

    它会在内部处理

  2. # 2 楼答案

    我想知道您是否想使用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"));
    

    使用这些方法可以使减速器连接到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