Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

297
Visualizações
NoClassDefFoundError com/microsoft/aad/adal4j/AuthenticationException al conectarse a Azure SQL desde GCP

Tengo mi proyecto Spark en data_proc en GCP, y en el envío de Spark, ejecuto el programa del controlador. Cuando intento conectarme a Azure SQL DB, aparece la siguiente excepción:

 20:39:15 DOCKER: Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/aad/adal4j/AuthenticationException 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.getFedAuthToken(SQLServerConnection.java:3609) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.onFedAuthInfo(SQLServerConnection.java:3580) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.processFedAuthInfo(SQLServerConnection.java:3548) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onFedAuthInfo(tdsparser.java:261) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:103) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4290) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:968) 20:39:15 DOCKER: at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69)

A continuación se muestran las versiones de los componentes:

  • proceso de datos: 1.5
  • adal4j : 1.6.7
  • azure-sqldb-chispa: 1.0.2

La autenticación es a través de Active Directory. Lo mismo funciona en local, pero no en dataproc. Agradezco cualquier ayuda!!

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Parece que estás usando Docker. Si es así, debe asegurarse de que adal4j.jar esté incluido en el contenedor Docker del controlador o que se haya agregado a través del indicador --jars en el comando de envío de Spark:

 gcloud dataproc jobs spark submit \ --cluster-name $CLUSTER_NAME \ . . . \ --jars adal4j.jar

Como referencia, vea cómo administrar las dependencias de Java en Spark: https://cloud.google.com/dataproc/docs/guides/manage-spark-dependencies

over 4 years ago · Santiago Trujillo Relatório

0

Si empaquetó su código de trabajo como un archivo fat jar con todas sus dependencias y lo envió correctamente a su clúster de Dataproc, e incluso entonces enfrenta el error, una posible razón del problema es que un conflicto de classpath relacionado con el controlador de SQL Server la biblioteca existe en alguna parte. Como también señalé en mi comentario, aunque en un contexto diferente, se informa un comportamiento similar en varios problemas de Github como este o este otro .

Además de intentar eliminar la biblioteca en conflicto, no sé si corresponde a su caso de uso, probablemente no sea un controlador de base de datos, pero tal vez podría intentar reubicar el código de SQL Server en un paquete diferente y usar ese paquete en su lugar.

El enfoque se describe en la documentación de GCP Dataproc , por ejemplo , utilizando el complemento de sombreado de Maven .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda