Ir para o conteúdo
JBaptista89

JDBC - Apache Phoenix Erro de Runtime Winutils.exe

Mensagens Recomendadas

JBaptista89    0
JBaptista89

Boas,

Em primeiro lugar, peço desculpa se o sítio do tópico não é o mais correcto mas não consegui encontrar nenhum sítio melhor.

É o seguinte:

Tenho de fazer uma aplicação springBoot para disponibilizar via json que vai consumir dados de uma base dados Hbase.

Para me conectar à tabela estou a usar um driver apachePhoenix que me vai conectar à BD via jdbc e possibilitar fazer as queries usando SQL.

Estou a fazer isto em Windows embora uma vez instalado a aplicação irá correr em linux.

 Já consigo conectar-me à base de dados e fazer as queries via SQL no entanto estou com um erro, que embora não sendo bloqueante, pois consigo executar as queries sem problma, me tem estado a tirar o sono nos ultimos dias:

Citação

 

2018-02-12 11:45:01.550 ERROR 8696 --- [nio-8080-exec-1] org.apache.hadoop.util.Shell             : Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:356) [hadoop-common-2.7.1.jar:na]

 

Eu consigo tirar o erro, definindo a variável de ambiente HADOOP_HOME e se meter o winutils.exe numa pasta c:/[path]/bin. O meu problema é que não muda em nada a minha execução, exceptuando o erro desaparecer.

As minhas dúvidas são as seguintes:

  • O que faz o winutils.exe?
  • É mesmo necessário em windows?
  • Alguma forma de tirar o erro ter de definir a variável HADOOP_HOME
  • Existe alguma forma de excluir o .jar onde é "executado" este Winutils.home no maven. O erro encontra-se ficheiro Shell.class.

O artefacto maven que estou a usar é o seguinte

 <groupId>org.apache.phoenix</groupId>
 <artifactId>phoenix-core</artifactId>
 <version>4.11.0-HBase-1.3</version>

Peço desculpa pelo post longo e obrigado pelas respostas!!! Disponível para qualquer esclarecimento adicional

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Penso que podes também definir a variável hadoop.home.dir, por exemplo com um -Dhadoop.home.dir como argumento do comando Java que usas para correr a aplicação.

O winutils disponibiliza implementações nativas de certas funcionalides do Hadoop, sem as quais o Hadoop pode não funcionar ou funcionar de forma mais lenta.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.