我正在尝试从独立的 Spark 连接到 Hive(hadoop 集群具有 kerberos 身份验证)。
有人可以让我知道如何在 Spark 程序中执行 kinit 我可以连接到配置单元吗?
更新:我的 Spark 与 Hadoop 位于不同的集群上
假设您打开了 Spark-Shell 并且不想退出,然后重新启动,您可以执行以下操作:
import java.lang.ProcessBuilder
import java.io.PrintWriter
//resets your kerberos login
val p1 = Runtime.getRuntime.exec("kdestroy")
p1.waitFor
//executes kinit,
val p = Runtime.getRuntime.exec("kinit")
val stdin = p.getOutputStream
val pw =new PrintWriter(stdin)
//val pwd = get_password() //get_password() is a function to get your password from a file, or wherever
pw.println(pwd) // you could put your password here , but plain text passwords are generally frowned upon
pw.close
p.waitFor
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)