Nie uhonoruj ​​w pełni wartości fs.default.name/fs.defaultFS w core-site.xml

Mam zainstalowaną usługę NameNode na komputerze o nazwiehadoop.

Thecore-site.xml plik mafs.defaultFS (równoważnyfs.default.name) ustaw na następujące:

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

Mam bardzo prostą tabelę o nazwietest_table który istnieje obecnie na serwerze Hive na HDFS. Oznacza to, że jest przechowywany pod/user/hive/warehouse/test_table. Został utworzony za pomocą bardzo prostego polecenia w Hive:

CREATE TABLE new_table (record_id INT);

Jeśli spróbuję załadować dane do tabeli lokalnie (to znaczy używającLOAD DATA LOCAL), wszystko przebiega zgodnie z oczekiwaniami. Jeśli jednak dane są przechowywane w systemie plików HDFS i chcę je stamtąd załadować, pojawia się problem.

Wykonuję bardzo proste zapytanie, aby spróbować tego obciążenia:

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

Prowadzi to do następującego błędu:

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.

Jak stwierdza błąd, próbuje się przenieśćhdfs://hadoop:8020/user/haduser/test_table.csv dohdfs://localhost:8020/user/hive/warehouse/test_table. Pierwsza ścieżka jest poprawna, ponieważ się odwołujehadoop:8020; druga ścieżka jest niepoprawna, ponieważ odwołuje sięlocalhost:8020.

Thecore-site.xml plik wyraźnie wskazuje na użyciehdfs://hadoop:8020. Thehive.metastore.warehouse wartość whive-site.xml poprawnie wskazuje na/user/hive/warehouse. Dlatego wątpię, aby ten komunikat o błędzie miał jakąś prawdziwą wartość.

Jak mogę uzyskać, aby serwer Hive używał prawidłowego adresu NameNode podczas tworzenia tabel?

questionAnswers(1)

yourAnswerToTheQuestion