Hive не может загрузить данные - cloudera quickstart VM 5.8

Я использую cloudera quickstart VM 5.8 в качестве среды hadoop. Я пытался сделать следующее.

  1. Создана таблица улья с использованием абсолютного uri hdfs

СОЗДАТЬ ВНЕШНЮЮ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ stocks_tb (exch STRING, symbol STRING, ymd STRING, price_open FLOAT, price_high FLOAT, price_low FLOAT, price_close FLOAT, volume INT, price_adj_close FLOAT) ROW FORMAT DELIMITED FIELDS TERMINATED BY quickstart.cloudera: 8020 / hadoop / hive / stocks ';

{Я пробовал использовать относительный путь, но интерфейс командной строки улья пожаловался мне, что я использую относительный путь, где требуется абсолютный путь}

  1. Загрузил запасы набора данных из локальной файловой системы на вход / запасы в HDFS.

  2. Пытался загрузить набор данных в таблицу

ЗАГРУЗИТЬ ДАННЫЕ INPATH 'hdfs: //quickstart.cloudera: 8020 / input / stocks' INTO TABLE stocks_tb;

Я получаю ошибку

Invalid path ''hdfs://quickstart.cloudera:8020/input/stocks'': 
No files matching path hdfs://quickstart.cloudera:8020/input/stocks

Я не знаю, почему я получаю эту ошибку. Данные существуют в input / stocks / stocks, но возникает ошибка.

могли бы вы заметить ошибку / какое-либо представление об ошибке?

Также когда я делаю

hadoop fs -ls hdfs: //quickstart.cloudera: 8020 / ввод / акции

Я не вижу ни одного файла, но когда вижу

hadoop fs -ls ввод / акции

Я вижу файл акций

Я не знаю, как это интерпретировать. Не могли бы вы помочь?

Спасибо


person sdinesh94    schedule 28.11.2016    source источник


Ответы (2)


Как я и подозревал.

Фактически данные были в user / cloudera / input / stocks, и я имел в виду / input / stocks в команде загрузки.

Правильная команда загрузки будет

ЗАГРУЗИТЬ ДАННЫЕ INPATH 'hdfs: //quickstart.cloudera: 8020 / user / cloudera / input / stocks' INTO TABLE stocks_tb;

person sdinesh94    schedule 29.11.2016

Скорее всего, у вашего пользователя нет разрешения на чтение / запись / ввод / акции в HDFS.

От имени какого пользователя вы запускаете программу? Вы можете попробовать использовать учетную запись суперпользователя hdfs.

Какая собственность принадлежит / входным / акциям?

Выполните следующее, чтобы проверить право собственности

hadoop fs -ls /
hadoop fs -ls /input

Вы можете запустить следующее, чтобы установить владельца / разрешения;

hadoop fs -chown user:group /input
person Blake Russo    schedule 28.11.2016