Hive не полностью соблюдает значение fs.default.name/fs.defaultFS в core-site.xml

У меня установлена служба NameNode на компьютере с именемhadoop.

core-site.xml файл имеетfs.defaultFS (эквивалентноfs.default.name) установите следующее:

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop:8020</value>
</property>

У меня есть очень простая таблица под названиемtest_table который в настоящее время существует на сервере Hive в HDFS. То есть он хранится под/user/hive/warehouse/test_table, Он был создан с помощью очень простой команды в Hive:

CREATE TABLE new_table (record_id INT);

Если я пытаюсь загрузить данные в таблицу локально (то есть используяLOAD DATA LOCAL) все идет как положено. Однако, если данные хранятся в HDFS, и я хочу загрузить их оттуда, возникает проблема.

Я запускаю очень простой запрос для попытки загрузки:

hive> LOAD DATA INPATH '/user/haduser/test_table.csv' INTO TABLE test_table;

Это приводит к следующей ошибке:

FAILED: SemanticException [Error 10028]: Line 1:17 Path is not legal ''/user/haduser/test_table.csv'':
Move from: hdfs://hadoop:8020/user/haduser/test_table.csv to: hdfs://localhost:8020/user/hive/warehouse/test_table is not valid.
Please check that values for params "default.fs.name" and "hive.metastore.warehouse.dir" do not conflict.

Как говорится в сообщении об ошибке, он пытается перейти отhdfs://hadoop:8020/user/haduser/test_table.csv вhdfs://localhost:8020/user/hive/warehouse/test_table, Первый путь правильный, потому что он ссылаетсяhadoop:8020; второй путь неверен, потому что он ссылаетсяlocalhost:8020.

core-site.xml файл четко указывает на использованиеhdfs://hadoop:8020,hive.metastore.warehouse значение вhive-site.xml правильно указывает на/user/hive/warehouse, Таким образом, я сомневаюсь, что это сообщение об ошибке имеет какое-либо истинное значение.

Как я могу заставить сервер Hive использовать правильный адрес NameNode при создании таблиц?

Ответы на вопрос(1)

Ваш ответ на вопрос