Hive no respeta completamente el valor fs.default.name/fs.defaultFS en core-site.xml

Tengo el servicio NameNode instalado en una máquina llamadahadoop.

loscore-site.xml archivo tiene lafs.defaultFS (equivalente afs.default.name) establecido en lo siguiente:

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

Tengo una mesa muy simple llamadatest_table que existe actualmente en el servidor Hive en el HDFS. Es decir, se almacena bajo/user/hive/warehouse/test_table. Fue creado usando un comando muy simple en Hive:

CREATE TABLE new_table (record_id INT);

Si intento cargar datos en la tabla localmente (es decir, usandoLOAD DATA LOCAL), todo procede como se espera. Sin embargo, si los datos se almacenan en el HDFS y quiero cargarlos desde allí, ocurre un problema.

Ejecuto una consulta muy simple para intentar esta carga:

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

Si lo hace, conduce al siguiente error:

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.

Como indica el error, está intentando pasar dehdfs://hadoop:8020/user/haduser/test_table.csv ahdfs://localhost:8020/user/hive/warehouse/test_table. El primer camino es correcto porque hace referencia.hadoop:8020; El segundo camino es incorrecto, porque hace referencia.localhost:8020.

loscore-site.xml archivo claramente estados para usarhdfs://hadoop:8020. loshive.metastore.warehouse valor enhive-site.xml señala correctamente a/user/hive/warehouse. Por lo tanto, dudo que este mensaje de error tenga algún valor verdadero.

¿Cómo puedo hacer que el servidor Hive use la dirección de NameNode correcta al crear tablas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta