Scala 本地启动Spark的Kerberos异常
我正在尝试设置Spark Testng单元测试:Scala 本地启动Spark的Kerberos异常,scala,unit-testing,apache-spark,kerberos,Scala,Unit Testing,Apache Spark,Kerberos,我正在尝试设置Spark Testng单元测试: @Test def testStuff(): Unit = { val sc = new SparkContext(new SparkConf().setAppName("test").setMaster("local")) ... } 代码失败:IllegalArgumentException:无法获取Kerberos域 我遗漏了什么?错误表明JVM无法找到kerberos config krb5.conf文件 根据您公司的环
@Test
def testStuff(): Unit = {
val sc = new SparkContext(new SparkConf().setAppName("test").setMaster("local"))
...
}
代码失败:IllegalArgumentException:无法获取Kerberos域
我遗漏了什么?错误表明JVM无法找到kerberos config krb5.conf文件 根据您公司的环境/基础设施,您有以下几种选择: 检查您的公司是否有设置kerberos身份验证的标准库。 或者尝试: 设置JVM属性:-Djava.security.krb5.conf=/file path/for/krb5.conf 将krb5.conf文件放入/jre/lib/security文件夹
我试过2.a,但没有成功。我应该在哪里设置JVM属性以成功运行测试?假设您在IDE中运行测试,则可以将其作为运行时参数的一部分传递。启用Kerberos调试跟踪可以帮助您了解Hadoop和/或Java Kerberos库中发生的情况=>export Hadoop_JAAS_debug=true和-Dsun.security.spnego.debug=true cf.plus-Djava.security.debug=gssloginconfig、configfile、configparser,logincontext cf.再三考虑,使用spark submit,必须在spark.driver.extraJavaOptions属性中设置Java系统属性。。。不确定从IDE直接创建SparkSession/SparkContext时设置它们的正确方法。