最近在做银行项目,该银行用的是华为FusionInsight HD集群,需求是通过数据库查数据并处理,需要并发度高,具体实现是测试环境写spark项目打包在生产上执行的
任务执行时偶尔成功,偶尔会报一个错误:Can't get kerberos realm ,并显示执行失败
后检查发现,是没有配置去匹配krb5.conf文件,后经查找发现,大多数在/etc/下会有krb5.conf文件,由于对jar包在加System.setConfig需要修改代码,所以选择在shell脚本中加入参数,主要需要设置java.security.krb5.realm和java.security.krb5.kdc,这两个参数可以通过krb5.conf文件获得,所以submit脚本增加如下两行
--conf "spark.executor.extraJavaOption=-Djava.security.krb5.realm=***.COM -Djava.security.krb5.kdc=***.21732"
--conf "spark.driver.extraJavaOption=-Djava.security.krb5.realm=***.COM -Djava.security.krb5.kdc=***.21732"
后问题解决,记录一下~~