2014-02-04 2 views
3

Моего Pig сценарий прекрасно сами по себе работает, пока я не положил его в рабочем процессе Oozie, где я получаю следующее сообщение об ошибке:Pig, Oozie и HBase - java.io.IOException: Нет FileSystem для схемы: HBase

ERROR 2043: Unexpected error during execution. 

org.apache.pig.backend.executionengine.ExecException: ERROR 2043: Unexpected error during execution. 
... 
Caused by: java.io.IOException: No FileSystem for scheme: hbase 

Я успешно зарегистрировал банки HBase и Zookeeper, но получил ту же ошибку.

Я также попытался установить Zookeeper Кворум, добавив изменение этих строк в скрипте Свиньи:

SET hbase.zookeeper.quorum 'vm-myhost-001,vm-myhost-002,vm-myhost-003' 

Некоторый поиск в Интернете поручил мне, чтобы добавить это начало моего workflow.xml:

SET mapreduce.fileoutputcommitter.marksuccessfuljobs false 

Это решило проблему. Я даже смог удалить регистрацию банок HBase и Zookeeper и кворума Zookeeper.

Теперь после двойной проверки я заметил, что мои рабочие места фактически выполняют свою работу: они хранят результаты в HBase, как ожидалось. Но, Оози утверждает, что произошел сбой, когда он этого не сделал.

Я не думаю, что установка mapreduce.fileoutputcommitter.marksuccessfuljobs на false представляет собой решение.

Есть ли другие решения?

+1

У меня была такая же проблема, когда я писал в Кассандру. Проблема в том, что Оози по умолчанию пытается создать файл _SUCCESS после завершения задания. Поэтому, когда вы отключите это, работа будет работать, но если что-то впоследствии будет полагаться на этот файл _SUCCESS, который будет создан, Oozie пометит работу как потерпевшую неудачу. В моем случае я убедился, что письмо Кассандре изолировано в своем собственном рабочем процессе. Не знаю, как это происходит с HBase ... – LiMuBei

ответ

0

Похоже, в настоящее время нет реального решения.

Однако, this answer к другому вопросу, кажется, указывает, что наилучшим обходным путем является создание флага успеха «вручную».

Смежные вопросы