Jump to content
JBaptista89

JDBC - Apache Phoenix Erro de Runtime Winutils.exe

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.