gpt4 book ai didi

hadoop - 使用 Spark JDBC 指定 jceks 文件

转载 作者:可可西里 更新时间:2023-11-01 15:04:00 26 4
gpt4 key购买 nike

我正在尝试通过 sqlContext.read.format("json") 方法连接到 Oracle。一切顺利,但在创建 JDBC 字符串时,我必须在字符串中指定数据库的用户名和密码:

val jdbcString = "jdbc:oracle:thin:USERNAME/PASSWORD@//HOSTNAME:PORT/SID"

但是,我在 HDFS 上确实有一个包含密码的 jceks 文件。我想知道是否有任何方法可以利用该文件连接到 JDBC 而不是纯文本密码?就像在 Sqoop 中一样,我们可以这样做:

sqoop import -Dhadoop.security.credential.provider.path=jceks://hdfs/data/credentials/oracle.password.jceks

谢谢。

最佳答案

这是使用 CredentialProviderFactory 实现的。

import org.apache.hadoop.security.alias.CredentialProviderFactory

val conf = new org.apache.hadoop.conf.Configuration()
val alias = "password.alias"
val jceksPath = "jceks://hdfs/user/data/alias/MySQL.password.jceks"

conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, jceksPath)

//getPassword Returns Array[Char]
val password = conf.getPassword(alias).mkString

关于hadoop - 使用 Spark JDBC 指定 jceks 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45438393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com