2013-03-04 2 views
0

Я просто пытался что-то в улье и HcatLoader в Pig. То, что я сделал, создало представление в Hive, а затем попыталось загрузить данные по представлению, которые я создал в свиньи, используя HcatLoader. Но, похоже, он не работает. Я просто хотел подтвердить, что есть ли способ сделать это? Я получаю следующую ошибку, когда пытался загрузить изображение в свиньи с помощью HcatLoaderaccesing Просмотры, созданных в Hive with HcatLoader in Pig

events = Загрузить 'ViewName', используя org.apache.hcatalog.pig.HCatLoader(); события сброса;

Когда я использую любое имя таблицы вместо View from Hive, оно работает. Кроме того, он не дает ошибку метастабильности. Поскольку он говорит, что он успешно подключен к метасторе при загрузке, когда дело доходит до дампа, он выходит из строя со следующей ошибкой.

Любые Указатели будут полезны.

Спасибо, Atul

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias events 
at org.apache.pig.PigServer.openIterator(PigServer.java:857) 
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682) 
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303) 
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) 
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) 
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84) 
at org.apache.pig.Main.run(Main.java:555) 
at org.apache.pig.Main.main(Main.java:111) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:156) 
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias events 
at org.apache.pig.PigServer.storeEx(PigServer.java:956) 
at org.apache.pig.PigServer.store(PigServer.java:919) 
at org.apache.pig.PigServer.openIterator(PigServer.java:832) 
... 12 more 
Caused by: org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobCreationException: ERROR 2017: Internal error creating job configuration. 
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:731) 
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(JobControlCompiler.java:259) 
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:180) 
at org.apache.pig.PigServer.launchPlan(PigServer.java:1270) 
at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1255) 
at org.apache.pig.PigServer.storeEx(PigServer.java:952) 
+0

Для людей, которые нашли это сообщение при поиске [ERROR 1066: Не удалось открыть итератор для псевдонима] (http: // stackoverflow.com/questions/34495085/error-1066-able-to-open-iterator-for-alias-in-pig-generic-solution) здесь [общее решение] (http://stackoverflow.com/a/34495086/ 983722). –

ответ

2

Ответ я получил, разместив его на каком-то другом форуме.

"HCatLoader не поддерживает чтение представлений в улье. Проблема в том, что вид определяется как запрос на столе (создать вид V как отборных х, у из т).

Свинья не говорит SQL,

и

HCat не содержит улья выполнения е ngine

поэтому он также не может выполнить запрос. Чтение взгляды улей от свинки и MR потребует более тесной интеграции продуктов, чем в настоящее время.»

-Atul

+1

даже я столкнулся с той же проблемой и, наконец, пришел к выводу, что Pig не может читать мнения с помощью HCatLoader. – Bector

-2

Поскольку Pig загружает данные из файла в Hadoop, чтение данных с точки зрения (что делает не имеет физического файла) может не работать. Может быть, если нам удастся создать файл для представления в hadoop, Pig может его загрузить. По крайней мере, файл виртуального указателя в файл фактических данных. Не уверен, это возможно или было продумано.

+1

HCatLoader не выбирает данные из файла, он использует Hive. Если вы хотите его очистить, вы можете попробовать одно. некоторое время файл данных содержит пустые значения, которые автоматически преобразуются в '\ N', которые вы можете видеть в инструкции select. Если вы загружаете одни и те же данные в скрипт свиньи с помощью HCatLoader, вы получите значения «\ N» в заявлении дампа. – Bector

0

Сегодня я нашел ту же проблему, что и сегодня. Улей не может читать Hive Views (но не хватает кода обработки исключений по этой теме). Для записей (кто-то другой, попадающие в эту проблему), это то, как текущая версия ведет себя: На Hortonworks 2.3 с Свиньи 1.15 я только получил следующее сообщение об ошибке в журнале:

ОШИБКА org.apache.pig. tools.grunt.Grunt - ERROR 2017: Внутренняя ошибка создание конфигурации задания.

Свинья не удается, потому что нет загружаемого файла (поскольку мы пытались загрузить из представления).