Hive erfüllt den Wert fs.default.name/fs.defaultFS in core-site.xml nicht vollständig

Ich habe den NameNode-Dienst auf einem Computer mit dem Namen installierthadoop.

Dascore-site.xml Datei hat diefs.defaultFS (gleichwertigfs.default.name) auf Folgendes eingestellt:

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

Ich habe einen sehr einfachen Tisch namenstest_table Das ist derzeit auf dem Hive-Server auf dem HDFS vorhanden. Das heißt, es wird unter gespeichert/user/hive/warehouse/test_table. Es wurde mit einem sehr einfachen Befehl in Hive erstellt:

CREATE TABLE new_table (record_id INT);

Wenn ich versuche, Daten lokal in die Tabelle zu laden (d. H. MitLOAD DATA LOCAL) läuft alles wie erwartet. Wenn die Daten jedoch auf dem HDFS gespeichert sind und ich von dort laden möchte, tritt ein Problem auf.

Ich führe eine sehr einfache Abfrage aus, um dieses Laden zu versuchen:

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

Dies führt zu folgendem Fehler:

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.

Wie der Fehler besagt, wird versucht, von zu verschiebenhdfs://hadoop:8020/user/haduser/test_table.csv zuhdfs://localhost:8020/user/hive/warehouse/test_table. Der erste Pfad ist korrekt, weil er verweisthadoop:8020; Der zweite Pfad ist falsch, weil er verweistlocalhost:8020.

Dascore-site.xml Datei sagt eindeutig zu verwendenhdfs://hadoop:8020. Dashive.metastore.warehouse Wert inhive-site.xml richtig zeigt auf/user/hive/warehouse. Daher bezweifle ich, dass diese Fehlermeldung irgendeinen wahren Wert hat.

Wie kann ich erreichen, dass der Hive-Server beim Erstellen von Tabellen die richtige NameNode-Adresse verwendet?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage