Kerberos的异常启动星火本地

问题描述:

我试图建立一个Spark TestNG的单元测试:Kerberos的异常启动星火本地

@Test 
def testStuff(): Unit = { 
    val sc = new SparkContext(new SparkConf().setAppName("test").setMaster("local")) 
    ... 
} 

的代码失败:IllegalArgumentException: Can't get Kerberos realm

我缺少什么?

+0

启用Kerberos的调试跟踪可以帮助您了解Hadoop的内部发生了什么,并/或Java Kerberos库=>'export HADOOP_JAAS_DEBUG = true'和'-Dsun.security.spnego.debug = true'比较https://steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/secrets.html加上'-Djava.security.debug = gssloginconfig,configfile,configparser,logincontext' cf. http://docs.oracle.com/javase/7/docs/technotes/guides/security/troubleshooting-security.html –

+0

第二个想法是,用'spark-submit',Java系统属性必须在' spark.driver.extraJavaOptions'属性...不确定从IDE直接创建SparkSession/SparkContext时设置它们的正确方法。 –

错误提示您的JVM无法找到kerberos配置文件(krb5.conf文件)。

根据您公司的环境/ infrastruture你有几个选择:

  1. 检查,如果你的公司拥有标准库设置Kerberos身份验证。
  2. 或者尝试:
    • 组JVM属性:-Djava.security.krb5.conf=/file-path/for/krb5.conf
    • krb5.conf文件到<jdk-home>/jre/lib/security文件夹
+0

我试过#2.a没有成功。我应该在哪里设置JVM属性以成功运行测试? – Gevorg

+0

假设您正在IDE中运行测试,那么您可以将其作为运行时参数的一部分传递。 – JSS