Я играл с Hadoop и его дочерними проектами, и у меня было несколько проблем на этом пути, но я, наконец, столкнулся с одной, на которую не могу найти ответ:
У меня есть таблица кустов, хранящаяся на hdfs в виде текстового файла с разделителями табуляции. И я могу сделать базовый выбор в таблице, но как только я немного усложняю запрос, куст превращает его в задание по сокращению карты, которое завершается с ошибкой со следующей трассировкой стека.
Рассматриваемая папка существует в dfs, по крайней мере, в части «/tmp/hadoop-yarn/staging», и независимо от того, на что я устанавливаю ее разрешения, hive или hadoop сбрасывает их при отправке задания. Что действительно беспокоит, так это то, что полный путь выглядит как сгенерированное имя папки, так почему же у программного обеспечения возникают проблемы с чем-то, что оно сгенерировало самостоятельно? Почему проблема в том, что путь является каталогом? И каким он должен быть?
Изменить: вот таблица, с которой я работаю, и запрос, который я пытаюсь запустить: Запрос: select * from hive_flow_details where node_id = 100 limit 10;
Стол:
col_name data_type идентификатор комментария bigint None
flow_versions_id int None
node_id int None
node_name string None
Имейте в виду, что это происходит с любым uery, который я пытаюсь использовать, который имеет какое-либо предложение where, поскольку hive переводит это в задание MR.
В конце концов я пришел к этой проблеме. Я обнаружил конфликтующие банки в своем пути к классам, которые я очистил, и с тех пор у меня не было проблем.