Понимание хранения данных hBase (веб-страница) для Nutch
Я использую HBase в качестве хранилища для просканированных данных Apache Nutch. Местоположение моего хранилища находится в пути /data/hbase/webpage, и там я вижу множество папок, таких как:
64b2feb30073eec24d9dba65d421e7f
482062bc554bd45bf198d9edea971a30
7c8a6eec12d9f6926a1d912be9a0ca81
c1f682541b8d1c0559de6df14ae84e2b
083b28ee75babc718cc28e66b98c9ff5
809eb4bb5f2be087e2c84a2f51d26653
и больше...
Эти папки содержат другие папки, такие как:
f h il mk mtdt ol p recovered.edits s
Но это не так важно.
Я пишу свой собственный индексатор для Nutch, чтобы получить данные для сканирования из HBase в Solr. Мне нужно поместить его в Solr партиями, потому что, когда я запускаю все это, я получаю исключение OutOfMemory.
Я хотел бы спросить вас, возможно ли получить пакетные идентификаторы из моего хранилища HBase (чтобы узнать, какие пакетные идентификаторы у меня есть, а затем я могу отправить их в индекс).
1 ответ
Я не знаю, как вы пытаетесь реализовать свое решение: в качестве плагина Nutch, Hadoop MapReduce или сценария с одним процессом, но я думаю, эта информация будет полезна:
Как указано в файле nutch-src / conf / gora-hbase- mapping.xml, batchId сопоставляется со столбцом HBase
f:bid
,Вы должны прочитать это с помощью Гора. Случаи
WebPage
есть метод#getBatchId()
, Проверьте определение avro WebPage и скомпилированный класс.
При разработке плагина, скорее всего, вы увидите WebPage
параметр в интерфейсе плагина.
Если вы хотите получить доступ batchId
просто в HBase, просто прочитайте колонку f:bid
и считать это необработанным текстом. Если я не ошибаюсь, Гора не пишет дополнительную информацию о строках (в отличие от сериализации).