Как обеспечить пространство имен таблицей в задании HbaseMapReduce - PullRequest
0 голосов
/ 07 мая 2018

Я создаю карту Reduce Jon, используя Hbase. Поэтому я беру некоторый вклад из таблицы в работе картографа, а затем использую Редуктор. Для вызова работы редуктора я использую эту функцию.

TableMapReduceUtil.initTableReducerJob(table, reducer, job);

Здесь таблица имеет тип String. Моя проблема в том, что мне нужно использовать таблицу с пространством имен, и я не знаю, как это сделать.

В случае картографа Job. Api предоставляет функцию для NameSpace, т.е.

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

Здесь таблица имеет тип org.apache.hadoop.hbase.TableName.

Так может кто-нибудь сказать мне, как это сделать и в работе с редуктором?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Итак, мне просто нужно указать имя таблицы как

Пространство имен: имя_таблицы

и он справится с этим внутренне.

0 голосов
/ 09 мая 2018

Полагаю, вы хотите использовать задание 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

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
...