技术分享

金山云 > 推荐阅读 > 【技术实践】kyuubi+集成kerberos认证

【技术实践】kyuubi+集成kerberos认证

发布时间: 2020-01-16 12:01:03

  kyuubi 集成kerberos认证


  1.配置


  创建kyuubi服务的principal(非必需):


  #启动


  kadmin.local


  #在kadmin命令行增加principal


  addprinc -randkeykyuubi/compile.bigdata@BIGDATA


  WARNING: no policyspecified for kyuubi/compile.bigdata@BIGDATA; defaulting to no policy


  Principal"kyuubi/compile.bigdata@BIGDATA" created.


  #导出keytab


  xst -k /etc/security/keytabs/kyuubi.keytabkyuubi/compile.bigdata@BIGDATA


  #检查keytab文件


  klist -kt/etc/security/keytabs/kyuubi.keytab


  Keytab name:FILE:/etc/security/keytabs/kyuubi.keytab


  KVNO Timestamp Principal


  ---- -------------------------------------------------------------------------


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  2 11/15/2018 11:21:00kyuubi/compile.bigdata@BIGDATA


  修改$SPARK_HOME/conf/spark-defaults.conf配置kerberos票据(使用hive):


  spark.yarn.keytab/etc/security/keytabs/hive.service.keytab


  spark.yarn.principalhive/compile.bigdata@BIGDATA


  spark.yarn.principal –Kerberos principal for Kyuubi server.


  spark.yarn.keytab – Keytabfor Kyuubi server principal.


  修改$SPARK_HOME/conf/spark-defaults.conf配置metastore的keytab(注意:hive.metastore.uris中的主机名要与principal中的HOST一致):


  

  hive.metastore.uris


  thrift://compile.bigdata:9083


  hive.metastore.warehouse.dir


  /apps/hive/warehouse


  hive.metastore.kerberos.keytab.file


  /etc/security/keytabs/hive.service.keytab


  hive.metastore.kerberos.principal


  hive/_HOST@BIGDATA


  hive.metastore.sasl.enabled


  true


  2.启动


  kinit -kt/etc/security/keytabs/hive.service.keytab hive/compile.bigdata@BIGDATA


  bin/start-kyuubi.sh--driver-memory 1g --conf spark.kyuubi.backend.session.init.timeout=180s


  --confspark.driver.extraClassPath=$JARS


  --confspark.executor.extraClassPath=$JARS


  --confspark.driver.allowMultipleContexts=true


  --confspark.kyuubi.authentication=KERBEROS


  --deploy-mode client


  3.客户端连接


  kinit -kt/etc/security/keytabs/hive.service.keytab hive/compile.bigdata@BIGDATA


  bin/beeline -u"jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA"


  新建用户:


  addprinc -randkeyjiadx/compile.bigdata@BIGDATA


  xst -k/etc/security/keytabs/jiadx.keytab jiadx/compile.bigdata@BIGDATA


  使用该用户连接:


  #使用jiadx初始化票据


  kinit -kt/etc/security/keytabs/jiadx.keytab jiadx/compile.bigdata@BIGDATA


  #仍然需要用hive principal连接jdbc


  bin/beeline –u


  "jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA"


  #查看当前已初始化票据的用户:


  0:jdbc:hive2://compile.bigdata:10009/> select current_user(); #hive中的命令


  +--------+--+


  | _c0 |


  +--------+--+


  | jiadx |


  +--------+--+


  1 row selected (0.992seconds)


  #也可以hive.server2.proxy.user=hdfs 参数设置用户


  bin/beeline –u


  "jdbc:hive2://compile.bigdata:10009/;principal=hive/compile.bigdata@BIGDATA;hive.server2.proxy.user=hdfs"


  0:jdbc:hive2://compile.bigdata:10009/> select current_user();


  +-------+--+


  | _c0 |


  +-------+--+


  | hdfs |


  +-------+--+


  1 row selected (0.675seconds)


  如果使用jiadx principal连接会有错误:


  bin/beeline -u"jdbc:hive2://compile.bigdata:10009/;principal=jiadx/compile.bigdata@BIGDATA;auth=kerberos"


  javax.security.sasl.SaslException:GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-APIlevel (Mechanism level: Checksum failed)]


  atcom.sun.security.sasl.gsskerb.GssKrb5Server.evaluateResponse(GssKrb5Server.java:199)


  atorg.apache.thrift.transport.TSaslTransport$SaslParticipant.evaluateChallengeOrResponse(TSaslTransport.java:539)


  atorg.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:283)


  atorg.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)


  at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)


  atorg.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:739)


atorg.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:736)


  作者:贾德星


  职务:云服务集团云计算产品中心高级架构师


  专业领域:大数据


  专家简介:系统软件架构师,具备二十余年一线软件开发的工作经历,经验丰富。主持研发金山大数据平台产品云海InsightHD,专注于大数据Hadoop/Spark/流计算/机器学习/深度学习等相关技术组件的研究与应用及组件研发。参与起草信息技术国家标准二十余项,已正式发布12项国家标准。研发并申请9项国家专利获得授权。

以上就是金山云为您带来的【技术实践】kyuubi+集成kerberos认证的相关内容,如果您还想了解更多命令,用户,票据,文件,主机,金山云的相关问题您可以点击页面中的链接进行具体了解。金山云提供云服务器,云主机,云存储,私有云,数据库,物理主机,RDS,KS3,SLB,KEC的全套产品服务,部分产品可以免费体验,而且会有定期的优惠、代金券等相关的活动。成立7年来,金山云始终坚持以客户为中心的服务理念,提供安全、可靠、稳定、高品质的云计算服务。以上是对【技术实践】kyuubi+集成kerberos认证相关介绍,如果觉得对您有帮助可以收藏。欢迎随时查看。
以上就是金山云为您带来的推荐阅读的全部内容,如果还想了解更多内容可访问金山云官网www.ksyun.com了解其它资讯。
*免责声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快处理。