我在通过spark java代码连接到kerberos安全的phoenix环境时遇到以下错误。
asl身份验证失败。最可能的原因是凭据丢失或无效。考虑“kinit”。javax.security.sasl.saslexception:gss initiate失败,原因是:org.ietf.jgss.gsseception:在sun.security.jgss.krb5.krb5initcredential.getinstance(krb5initcredential)上未提供有效凭据(机制级别:找不到任何kerberos tgt)。java:147"
我的Spark代码是follows:-
SparkConf sparkConf = new SparkConf()
.setMaster("local[4]")
.setAppName("phoenix-test")
.set("hadoop.security.authentication", "kerberos")
.set("hbase.security.authentication", "kerberos")
.set("hadoop.rpc.protection", "privacy")
.set("spark.yarn.principal", "infinityadm/lswpbacrapn3d.nam.nsroot.net@NAMUXDEV.DYN.NSROOT.NET")
.set("spark.yarn.keytab", "C://files//infinityadm_lswpbacrapn3d.nam.nsroot.net@NAMUXDEV.DYN.NSROOT.NET.keytab")
sc = new SparkContext(sparkConf);
JavaSparkContext jsc = JavaSparkContext.fromSparkContext(SparkContext.getOrCreate(sparkConf));
SQLContext sqlContext = new SQLContext(jsc);
DataFrame fromPhx = sqlContext
.read()
.format("org.apache.phoenix.spark")
.option("table", "ODS.TRF_DEF_PRM")
.option("zkURL", "url:/hbase-dev")
/*.option("zkURL","lswpbacrapn1d,lswpbacrapn2d,lswpbacrapn3d:2181:/hbase-dev")*/
.load();
我在intellij中的vm选项如下follows:-
-DCPB_LOG_PATH=C:/Users/PB42185/Logs
-DSERVICE_NAME=infinity-utils
-DJava.security.krb5.conf=C:/Users/2185/krb5.conf
-DJava.security.krb5.ini=C:/Users/2185/krb5.ini
-DJava.security.krb5.realm=@APACUXUAT.DYN.NSROOT.NET
-Dzookeeper.sasl.client=false
-Dzookeeper.sasl.client.username=adm
-Dsun.security.krb5.debug=true
暂无答案!
目前还没有任何答案,快来回答吧!