Não está totalmente honrando o valor de fs.default.name/fs.defaultFS no core-site.xml

Eu tenho o serviço NameNode instalado em uma máquina chamadahadoop.

ocore-site.xml arquivo tem ofs.defaultFS (equivalente afs.default.name) definido para o seguinte:

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

Eu tenho uma tabela muito simples chamadatest_table que atualmente existe no servidor Hive no HDFS. Isto é, é armazenado sob/user/hive/warehouse/test_table. Foi criado usando um comando muito simples no Hive:

CREATE TABLE new_table (record_id INT);

Se eu tentar carregar dados na tabela localmente (ou seja, usandoLOAD DATA LOCAL), tudo procede conforme o esperado. No entanto, se os dados são armazenados no HDFS e eu quero carregar a partir daí, ocorre um problema.

Eu corro uma consulta muito simples para tentar essa carga:

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

Isso faz com que o seguinte erro:

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 o erro indica, ele está tentando mudar dehdfs://hadoop:8020/user/haduser/test_table.csv parahdfs://localhost:8020/user/hive/warehouse/test_table. O primeiro caminho está correto porque ele faz referênciahadoop:8020; o segundo caminho está incorreto, porque ele faz referêncialocalhost:8020.

ocore-site.xml arquivo claramente afirma usarhdfs://hadoop:8020. ohive.metastore.warehouse valor emhive-site.xml aponta corretamente para/user/hive/warehouse. Assim, duvido que esta mensagem de erro tenha algum valor verdadeiro.

Como posso fazer com que o servidor Hive use o endereço NameNode correto ao criar tabelas?

questionAnswers(1)

yourAnswerToTheQuestion