java - 无法使用 azure-activedirectory-library-for-java 库使用 Java 连接 Spark YARN 集群中的 Azure SQL DB
问题描述
在我们的一个项目中,我们使用的是 Azure SQL DB,身份验证模式是基于访问令牌的。我们正在使用 Spark Java 进行连接。当我们作为独立运行 Spark 作业时,我们能够连接到 DB,但是当我们在 YARN 模式下运行时,我们无法连接。我们正在使用库“azure-activedirectory-library-for-java”</p>
我们收到错误消息:用户登录失败:''。客户端连接ID:
异常:INFO 客户端:客户端令牌:N/A 诊断:用户类抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException:用户“”登录失败。ClientConnectionId:2b288e9e-15cc-448a-8210-0d184d27a12b ApplicationMaster 主机:172.25.3.7 ApplicationMaster RPC 端口:0 队列:默认开始时间:1538583454649 最终状态:FAILED 跟踪 URL:
参考:
https://github.com/Azure/azure-sqldb-spark
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-spark-connector
提前致谢。
感谢和问候,
-文卡特
以下是异常堆栈跟踪:
18/10/08 10:07:16 WARN SparkSession$Builder:使用现有的 SparkSession;某些配置可能不会生效。18/10/08 10:07:16 错误 ApplicationMaster:用户类抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException:用户“登录失败”。ClientConnectionId:8ecbc2ae-cede-4b1d-8eba-f362010f71e6 com.microsoft.sqlserver.jdbc.SQLServerException:用户“”登录失败。ClientConnectionId:8ecbc2ae-cede-4b1d-8eba-f362010f71e6 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:251) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:81) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:3077) 在 com.microsoft.sqlserver.jdbc。
解决方案
问题是Login failed for user ''.
,我没有看到登录尝试使用的用户名?
18/10/08 10:07:16 错误 ApplicationMaster:用户类抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException:用户“登录失败”。ClientConnectionId:8ecbc2ae-cede-4b1d-8eba-f362010f71e6 com.microsoft.sqlserver.jdbc.SQLServerException:用户“”登录失败。ClientConnectionId:8ecbc2ae-cede-4b1d-8eba-f362010f71e6 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
您尝试以什么用户身份连接?是否按照创建 Azure Active Directory 的说明将此标识添加为“包含的数据库用户”:
如果上述步骤已正确完成,您将继续:
设置要求
如果您使用基于访问令牌的身份验证模式,则需要下载azure-activedirectory-library-for-java及其依赖项,并将它们包含在 Java 构建路径中。
请参阅使用 Azure Active Directory 身份验证对 SQL 数据库进行身份验证,了解如何获取 Azure SQL 数据库的访问令牌。
推荐阅读
- streamsets - 流集中的凭证
- matlab - 在 Simulink 中获取 SimulationOutput 变量“logsout”的名称
- sql - 将字符串数组更新为 LOWER(小写)
- unit-testing - Angular6 - 测试 HttpClient“点击”和“管道”
- typo3 - Powermail 国家/地区列表
- wordpress - 当标题更改时,是否可以不更新 Wordpress 中的 url?
- .net - 多少垃圾收集太多了
- validation - Symfony 3.3 如何为两个嵌套的 collectionType 添加约束
- session - 会话关闭后 Tensorflow 不释放内存
- json - how to display my JSON object in good format in VBA Excel