Hbase Mapreduce Job использует неверное имя таблицы в maper - PullRequest
1 голос
/ 15 октября 2019

У меня есть контент для сканирования в таблице Hbase (через Nutch). Я написал для обработки таблицы и вывода ее статистики в новую таблицу с помощью задания mapreduce. Ниже приведен фрагмент кода работы MR.

NutchJob job = NutchJob.getInstance(getConf(), "customJob");

// === Map ===
DataStore<String, WebPage> pageStore = StorageUtils.createWebStore(
    job.getConfiguration(), String.class, WebPage.class);
Query<String, WebPage> query = pageStore.newQuery();
query.setFields(StorageUtils.toStringArray(FIELDS)); // Note: pages without
                                                     // these fields are
                                                     // skipped
LOG.info( "Table before mapper: " + job.getConfiguration().get(Nutch.CRAWL_ID_KEY ) );

GoraMapper.initMapperJob(job, pageStore, Text.class, WebPage.class,
        TableCopy.Mapper2.class, true);

job.setNumReduceTasks(1);


job.getConfiguration().set(Nutch.CRAWL_ID_KEY, "txt" );
LOG.info( "Table before reducer: " + job.getConfiguration().get(Nutch.CRAWL_ID_KEY ) );

DataStore<String, WebPage> hostStore = StorageUtils.createWebStore(
        job.getConfiguration(), String.class, WebPage.class);


GoraReducer.initReducerJob(job, hostStore, MarkerUpdateReducer2.class);

job.waitForCompletion(true);

Есть две таблицы, одна из которых указана в общей строке, а вторая в данном случае жестко закодирована ("txt"). Я намерен создать хранилище данных редуктора с новым именем таблицы, чтобы я мог хранить там данные. Но что происходит, так это то, что в mapper обрабатывается таблица «txt», и, поскольку в этой таблице нет данных, задание выполняется. Ниже приведен фрагмент журнала

019-10-15 15:38:05,007 WARN  util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2019-10-15 15:38:07,028 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'a_webpage'Assuming they are the same.
2019-10-15 15:38:07,647 INFO  marker.TableCopy - Table before mapper: a
2019-10-15 15:38:07,738 INFO  marker.TableCopy - Table before reducer: txt
2019-10-15 15:38:07,775 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.
2019-10-15 15:38:08,316 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.
2019-10-15 15:38:09,401 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.
2019-10-15 15:38:09,453 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.
2019-10-15 15:38:09,491 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.
2019-10-15 15:38:09,604 INFO  marker.TableCopy - map table: txt
2019-10-15 15:38:09,869 WARN  store.HBaseStore - Mismatching schema's names. Mappingfile schema: 'webpage'. PersistentClass schema's name: 'txt_webpage'Assuming they are the same.

Я напечатал имя таблицы в методе настройки. Текст отображается так, как указано в журналах "таблица таблиц: TXT". Фактическая таблица ins "a"

...