2017-01-15 10 views
5

Я пытаюсь загрузить набор данных, хранящийся на HDFS (текстовый файл), в улей для анализа. Я использую создать внешнюю таблицу следующим образом:hive внешняя таблица, требующая права на запись

CREATE EXTERNAL table myTable(field1 STRING...) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/user/myusername/datasetlocation'; 

Это прекрасно работает, но требует доступа записи к месту HDFS. Почему это?

В общем, как правильно загружать текстовые данные, к которым у меня нет доступа на запись? существует ли тип таблицы «только для чтения»?

Редактировать: Я заметил this issue на улью относительно вопроса. Кажется, он не был разрешен.

+0

Связанный вопрос: http://stackoverflow.com/questions/37538487/why-does-the-user-need-write-permission-on-the-location-of-external-hive-table (но ответа нет ..) – Amir

ответ

0

Я не решение этой проблемы, но в качестве обходного пути я обнаружил, что

CREATE TEMPORARY EXTERNAL TABLE

работает без разрешения записи, разница в том, таблицу исчезнет после сеанса.

+0

слишком плохие столбцы разделов не поддерживаются во временных таблицах –

1

Если вам требуется доступ на запись в HDFS файлы дают Hadoop ДФС -chmod 777/папки

это означает, что ваш дает все права доступа к этому конкретному файлу.

+0

Это именно то, о чем идет речь. Я не хочу (а иногда и не могу) получить доступ на запись к файлу. Обычно данные являются результатом другого процесса, которого я не контролирую. Я только прочитал доступ к этому набору данных, потому что, ну, мне нужно только его прочитать. – Amir

+0

Хорошо, я понял. Я проверил внешний запрос куста, в котором файл hdfs не имеет разрешений на запись. Это выполняется для меня. То, что я сделал, я дал разрешения на папку хранения hadoop. Сначала проверьте, имеет ли папка ur hado полный доступ или нет. Если вы не дадите разрешения и не проверите запрос, он должен работать в это время. – Yasodhara

3

Частично отвечая на мой собственный вопрос:

Действительно, кажется, не будет решен улья в этот момент. Но вот интересный факт: улей не требует доступа на запись к самим файлам, но только к папке. Например, у вас может быть папка с разрешениями 777, но файлы внутри нее, к которым обращается куст, могут оставаться доступными только для чтения, например. 644.

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

  • Нет связанных вопросов^_^